1*74ce4ce3SDavid Wang #include <stdio.h> 2*74ce4ce3SDavid Wang #include <set> 3*74ce4ce3SDavid Wang 4*74ce4ce3SDavid Wang using namespace std; 5*74ce4ce3SDavid Wang 6*74ce4ce3SDavid Wang int total = 0; 7*74ce4ce3SDavid Wang #define MAXN 1024 8*74ce4ce3SDavid Wang int que[MAXN]; 9*74ce4ce3SDavid Wang #define MOD 1000000007 10*74ce4ce3SDavid Wang main()11*74ce4ce3SDavid Wangint main() { 12*74ce4ce3SDavid Wang long long v; 13*74ce4ce3SDavid Wang set<int> rs; 14*74ce4ce3SDavid Wang int h=0, i, ni, vv, rk; 15*74ce4ce3SDavid Wang while(1) { 16*74ce4ce3SDavid Wang printf("number>:"); 17*74ce4ce3SDavid Wang scanf("%lld", &v); 18*74ce4ce3SDavid Wang if (v<=0) { 19*74ce4ce3SDavid Wang printf("total: %d\n", total); 20*74ce4ce3SDavid Wang if (total) { 21*74ce4ce3SDavid Wang printf("Latest numbers are:"); 22*74ce4ce3SDavid Wang for (i=0; i<8&&i<total; i++) { 23*74ce4ce3SDavid Wang ni=h-1-i; if (ni<0) ni+=MAXN; 24*74ce4ce3SDavid Wang printf(" %d", que[ni]); 25*74ce4ce3SDavid Wang } printf("\n"); 26*74ce4ce3SDavid Wang } 27*74ce4ce3SDavid Wang } else { 28*74ce4ce3SDavid Wang que[h++]=v; if (h>=MAXN) h=0; 29*74ce4ce3SDavid Wang total++; 30*74ce4ce3SDavid Wang vv = (v*37)%MOD; 31*74ce4ce3SDavid Wang rs.insert(vv); 32*74ce4ce3SDavid Wang auto y = rs.lower_bound(vv); 33*74ce4ce3SDavid Wang rk = 0; 34*74ce4ce3SDavid Wang for (auto x = rs.begin(); x!=y; x++) rk++; 35*74ce4ce3SDavid Wang printf("your number has rank %d\n", rk+1); 36*74ce4ce3SDavid Wang } 37*74ce4ce3SDavid Wang } 38*74ce4ce3SDavid Wang return 0; 39*74ce4ce3SDavid Wang } 40