PKU 1026(途中)
Time Limit Exceededされたコード。
#include <iostream> #include <vector> #include <string> using namespace std; int main(){ vector<int> key; int i, j, keylen, tmp; cin>>keylen; for(i = 0; i < keylen; i++){ cin>>tmp; tmp--; key.push_back(tmp); } while(1){ tmp = 0; vector<char> src(keylen + 1, ' '), dst(keylen + 1, 0); cin>>tmp; if(tmp == 0) break; cin.ignore(); cin.getline(&src[0], src.size()); for(i = 0; i < keylen; i++) if(!src[i]) src[i] = ' '; for(j = 0; j < tmp; j++){ for(i = 0; i < key.size(); i++){ dst[key[i]] = src[i]; } src = dst; } cout<<string(&dst[0])<<endl; } cin>>tmp; return 0; }
そもそも最初keyから1引くの忘れて、あれー配列の添字あわないなーとかいうので小一時間悩んだりとかして、自分の技量の無さを実感中…
その点ではPKUとかは本当にいい訓練にはなってると思うけど。