#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define FOR(a,b,c) for(int a=b;a<=c;a++) #define SIZEOF(a) (sizeof(a)/sizeof(a[0])) #define FORARR(i,a) for(unsigned i=0; i 0) { string str; char c; scanf("%c", &c); do { scanf("%c", &c); #ifdef DEBUG cout << "c: " << c << endl; #endif if (isspace(c)) continue; c = toupper(c); str += c; } while (c != '\n'); int strpos = 0; #ifdef DEBUG cout << "str: " << str << endl; #endif char result[10001] = {0}; FOR(offset,0,N-1) { for (int i=0; i+offset < str.size(); i+=N) { result[i+offset] = str[ strpos++ ]; } } cout << result << endl; /* list positions; FOR(i,0,str.length()-1) { positions.push_back(i); } char result[10001] = {0}; int strpos = 0; // naskladat pismena while (!positions.empty()) { list::iterator i = positions.begin(); #ifdef DEBUG cout << "i: " << *i << endl; #endif while (i != positions.end()) { result[ *i ] = str[ strpos++ ]; // posunout i o N pozic dal list::iterator j = i; i++; positions.erase(j); FOR(k,0,N-2) { if (i == positions.end()) break; i++; } } } cout << result << endl; */ } return 0; }