AOJ 0017再チャレンジ失敗
前回のコードは少し思い当たる節があったので、1から書きなおしてみたが、これがまたRuntime Errorだとかよく分からないエラーを吐く。もうはやここまでくるとお手上げ感がある。
#include <cstdio> #include <vector> #include <string> using namespace std; int main(){ while(1){ vector<string> v; string s; char c, f = 1; int i, j, k, vl, vsl, o = 0; while(f){ switch(c = getchar()){ case ' ': case '.': if(s.size()) v.push_back(s); v.push_back(s = c); s = ""; break; case '\n': if(s.size()) v.push_back(s); f = 0; break; case EOF: return 0; default: s += c; } } vl = v.size(); for(i = 0, vsl = v[i].size(); i < vl; vsl = v[++i].size()){ if(vsl == 3) for(j = -127; j <= 128 && !o; j++, o=(s=="the"?j-1:0)){ s = v[i]; for(k = 0; k < 3; k++) s[k] += j; } else if(vsl == 4) for(j = -127; j <= 128 && !o; j++, o=(s=="this"||s=="that"?j-1:0)){ s = v[i]; for(k = 0; k < 4; k++) s[k] += j; } if(o) break; } for(i = 0; i < vl; i++) if(v[i] == "." || v[i] == " ") putchar(v[i][0]); else for(j = 0; j < v[i].size(); j++) putchar(v[i][j] + o); putchar(10); } return 0; }