题目链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemId=1855
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const double pi=acos(-1.0);
const double w=(-180)*pi/180;
const double e=180*pi/180;
const double n=log(tan(pi/4+(85*pi/180)/2));
const double s=log(tan(pi/4+((-85)*pi/180)/2));
int l1;
void dfs(double x,double y,double t,double b,double l,double r,int cur)
{
if(cur==l1) return ;
double d1=(l+r)/2;
double d2=(t+b)/2;
bool flag1=false,flag2=false;
if(x<d1) {r=d1;flag1=true;}
else l=d1;
if(y>d2) {b=d2;flag2=true;}
else t=d2;
if(flag1&&flag2) printf("q");
else if(flag1&&(!flag2)) printf("t");
else if(!flag1&&flag2) printf("r");
else printf("s");
dfs(x,y,t,b,l,r,cur+1);
}
int main()
{
double x,y;
while(~scanf("%lf%lf%d",&x,&y,&l1))
{
x*=pi/180;
y=log(tan(pi/4+(y*pi/180)/2));
printf("t");
dfs(x,y,n,s,w,e,0);
printf("\n");
}
return 0;
}