https://beta.atcoder.jp/contests/soundhound2018-summer-qual のB問題 https://beta.atcoder.jp/contests/soundhound2018-summer-qual/tasks/soundhound2018_summer_qual_b の誤答例.
次のコードのようにstringに変換してから標準出力するとWAとなった。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string S;
int w;
cin >> S >> w;
vector<char> res;
for (int i=0; i<S.size(); ++i) {
if ((i % w) == 0) res.push_back(S[i]);
}
string s_res(res.data());
cout << s_res << endl;
return 0;
}
https://beta.atcoder.jp/contests/soundhound2018-summer-qual/submissions/2816691
原因は、stringのコンストラクタに入れる文字配列が終端文字\0を持っていないことで、次のように\0を追加しておけばACとなった。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string S;
int w;
cin >> S >> w;
vector<char> res;
for (int i=0; i<S.size(); ++i) {
if ((i % w) == 0) res.push_back(S[i]);
}
res.push_back('\0');
string s_res(res.data());
cout << s_res << endl;
return 0;
}