#include #include #include int main() { char * input(new char[10005]); while(true) { int cipher; std::cin >> cipher; if (cipher==0) break; memset(input,0,10004); std::cin.getline(input,10); std::cin.getline(input,10000); char * endinput(input); while (*endinput!=0) ++endinput; char * inter(new char[endinput-input]); char * endinter(inter); char* pntinter(inter); for (char * pntinput(input);pntinput!=endinput;++pntinput) { if (*pntinput<='z' && *pntinput>='a') { *endinter=*pntinput + 'A' - 'a'; ++endinter; } else if (*pntinput<='Z' && *pntinput>='A') { *endinter=*pntinput; ++endinter; } } char * result (new char[endinter-inter+1]); char * endresult(result + (endinter - inter)); char * pntresult(result); *endresult = 0; for(;pntresult!=endresult;++pntresult) *pntresult = 0; // pntresult wanted at end for (pntinter = inter;pntinter!=endinter;++pntinter) { pntresult += cipher; if (pntresult>=endresult) { pntresult = result; while(*pntresult) // invariant not full ++pntresult; } *pntresult = *pntinter; } //for (pntresult = result;pntresult!=endresult;++pntresult) //std::cout<<*pntresult; printf( "%s\n", result); delete[] inter; delete[] result; } delete[] input; return 0; }