Official

A - 答案の採点 / Grading the Answer Sheet Editorial by physics0523


初心者の方へ


まず、書き換えを行う前の誤答の数を数えます。これは、以下の要領で数えられます。

  • \(i=1,2,\dots,N\) について、以下を繰り返す。
    • もし \(S_i\)\(T_i\) が異なるなら、誤答数に \(1\) 加算する。

この誤答数を \(wa\) とします。

  • もし \(wa \le k\) であれば書き換えの必要はないので答えは \(0\) です。
  • もし \(wa > k\) であれば、一度の書き換えで誤答を \(1\) つ減らすのが最善なので、答えは \(wa-k\) です。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;

int main(){
  int n,k;
  cin >> n >> k;
  string s,t;
  cin >> s >> t;

  int wa=0;
  for(int i=0;i<n;i++){
    if(s[i]!=t[i]){wa++;}
  }
  cout << max(0,wa-k) << "\n";
  return 0;
}

posted:
last update: