#include<iostream>
using namespace std;
long long length[51];
void precalc()
{
length[0] = 1;
for(int i = 1; i<=50; i++)
{
length[i] = length[i-1]*2 +2;
}
}
const string X = "X+YF";
const string Y = "FX-Y";
char expand(const string& dragonCurve, int generations, int skip)
{
if(generations == 0)
{
return dragonCurve[skip];
}
for(int i = 0 ; i < dragonCurve.size(); i++)
{
if(dragonCurve[i] == 'X' || dragonCurve[i] =='Y'){
if(skip>=length[generations])
skip -= length[generations];
else if(dragonCurve[i] == 'X')
{
return expand(X, generations-1, skip);
}
else if(dragonCurve[i] =='Y')
{
return expand(Y, generations-1,skip);
}
}
else if(skip>0)
--skip;
else
return dragonCurve[i];
}
return '#';
}
int main()
{
string t;
int C, a,b,c;
cin>>C;
precalc();
while(C--)
{
cin>>a>>b>>c;
for(int i=b; i<=b+c-1; i++)
{
string org = "FX+YF";
cout<<expand(org,a,i-1);
}
cout<<endl;
}
}
'알고리즘 > JM북' 카테고리의 다른 글
p270 두니발 박사의 탈옥 (0) | 2017.02.13 |
---|---|
264p 폴리노미오 (0) | 2017.02.13 |
156p 소풍 (0) | 2017.02.05 |
149p 조합 찾기 (0) | 2017.02.05 |
2장 p30 사탕 나눠주기 (0) | 2017.01.30 |