xref: /linux-tools/drivers/mremap/napp.cpp (revision 74ce4ce33d5b8318cee71b38976a25818e666ff3)
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 Wang int 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