Submission #1608987


Source Code Expand

#include <iostream>
using namespace std;

int main() {
  // 入力
  string s;
  int k;
  cin >> s >> k;

  // 前から、aにできる時は最小の操作回数でaにしていく貪欲法
  // 残りの操作回数でどの文字もaにできなくなった時は、残りの操作回数分最後の文字に操作をすればよい
  int L = s.size();
  for (int i = 0; i < L - 1; i++) {
    if (s[i] == 'a') continue;
    if (26 - (s[i] - 'a') <= k) {
      k -= 26 - (s[i] - 'a');
      s[i] = 'a';
    }
  }

  // 最後の文字への操作
  k %= 26;
  // k = (k + (s[s.size()-1] - 'a')) % 26;
  // s[s.size()-1] = 'a' + k;
  while (k--) {
    s[L-1]++;
    if (s[L-1] > 'z') s[L-1] = 'a';
  }

  // 解答
  cout << s << endl;

  return 0;
}

Submission Info

Submission Time
Task C - Next Letter
User university
Language C++14 (GCC 5.4.1)
Score 400
Code Size 787 Byte
Status AC
Exec Time 5 ms
Memory 512 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 27
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KB
0_01.txt AC 1 ms 256 KB
0_02.txt AC 1 ms 256 KB
1_00.txt AC 1 ms 256 KB
1_01.txt AC 1 ms 256 KB
1_02.txt AC 1 ms 256 KB
1_03.txt AC 1 ms 256 KB
1_04.txt AC 1 ms 256 KB
1_05.txt AC 1 ms 256 KB
1_06.txt AC 4 ms 512 KB
1_07.txt AC 4 ms 512 KB
1_08.txt AC 4 ms 512 KB
1_09.txt AC 4 ms 512 KB
1_10.txt AC 4 ms 512 KB
1_11.txt AC 4 ms 512 KB
1_12.txt AC 4 ms 512 KB
1_13.txt AC 4 ms 512 KB
1_14.txt AC 4 ms 512 KB
1_15.txt AC 4 ms 512 KB
1_16.txt AC 4 ms 512 KB
1_17.txt AC 4 ms 512 KB
1_18.txt AC 4 ms 512 KB
1_19.txt AC 5 ms 512 KB
1_20.txt AC 4 ms 512 KB
1_21.txt AC 4 ms 512 KB
1_22.txt AC 4 ms 512 KB
1_23.txt AC 4 ms 512 KB