Untitled

 avatar
unknown
c_cpp
2 years ago
807 B
6
Indexable
#include <stdio.h>
#include <string.h>

long long len[52];
char s[4] = "OuQ";

char solve(int k, long long l){
    if(k == 1){
        if(l == 0) return 'O';
        else if(l == 1) return 'u';
        else if (l == 2) return 'Q';
    }
    else{
        if(l == 2*len[k-1]+2) return 'Q';
        else if(l > len[k-1]+1) return solve(k-1, l-len[k-1]-2);
        else if(l == len[k-1]+1) return 'u';
        else if(l == 0) return 'O';
        else return solve(k-1, l-1);
    }
}

int main(){

    int k;
    long long l, r;
    len[1] = 3;
    for(int i = 2; i <= 50; i++){
        len[i] = 2*len[i-1]+3;
    }
    while(scanf("%d%lld%lld", &k, &l, &r) != EOF){
        for(int i = l; i <= r; i++){
            solve(k, i);
            printf("\n");
        }
    }    
}
Editor is loading...