JOI春合宿 2010-DAY1-1 (JOI Poster)
ジャッジ動いてないからあれだけどたぶん大丈夫
再帰するだけ
#include <cstdio> #include <string> #include <iostream> using namespace std; int n, k, fact[21]; string s; string solve(int size, int pos){ string tmp = ""; if(size == 1){ tmp += 'J'; return tmp; } if(pos <= size / 2){ for(int i = 0; i < size / 2; i++) tmp += 'J'; for(int i = 0; i < size / 2; i++) tmp += 'O'; return tmp; }else{ for(int i = 0; i < size / 2; i++) tmp += 'I'; return tmp + solve(size / 2, pos - size / 2); } } int main(){ fact[0] = 1; for(int i = 1; i < 21; i++) fact[i] = 2 * fact[i - 1]; scanf("%d %d", &n, &k); s = solve(fact[n], k); cout << s << endl; return 0; }