大搬运术:http://blog.csdn.net/PoPoQQQ/article/details/46549901
#include<cstdio> #include<cstdlib> #include<algorithm> using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; } return *p1++; } inline void read(int &x) { char c=nc(),b=1; for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1; for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b; } int n,p,q; int Gcd(int a,int b){ if (a<b) return Gcd(b,a); return b?Gcd(b,a%b):a; } bool Jud(int n,int p,int q) { return n%p<q && n%p%(p-q)==0; } int main() { freopen("t.in","r",stdin); freopen("t.out","w",stdout); int Q; read(Q); while (Q--) { read(p); read(q); read(n); int g=Gcd(p,q); if(n%g) { printf("R\n"); continue; } p/=g; q/=g; n/=g; if(p==q) { printf("E\n"); } else if(p>q) { if(n<p) printf("P\n"); else printf("%s\n",Jud(n,p,q)?"E":"P"); } else if(n<p) { if(n+p<q) printf("E\n"); else printf("%s\n",Jud(n+p,q,p)?"P":"E"); } else { printf("E\n"); } } return 0; }