Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 2421    Accepted Submission(s): 736


Problem Description
sd0061, the legend of Beihang University ACM-ICPC Team, retired last year leaving a group of noobs. Noobs have no idea how to deal with k.

Now, you are in charge of making the list for constroy.
 

 

Input
There are multiple test cases (about i.

unsigned x = A, y = B, z = C;
unsigned rng61() {
  unsigned t;
  x ^= x << 16;
  x ^= x >> 5;
  x ^= x << 1;
  t = x;
  x = y;
  y = z;
  z = t ^ x ^ y;
  return z;
}
 

 

Output
For each test case, output "Case #i-th contest of corresponding case.
 

 

Sample Input
3 3 1 1 1 0 1 2 2 2 2 2 2 1 1
 

 

Sample Output
Case #1: 1 1 202755 Case #2: 405510 405510
 

 

Source
 
 1 #pragma comment(linker, "/STACK:102400000,102400000")
 2 #include <bits/stdc++.h>
 3 #include <cstdlib>
 4 #include <cstdio>
 5 #include <iostream>
 6 #include <cstdlib>
 7 #include <cstring>
 8 #include <algorithm>
 9 #include <cmath>
10 #include <cctype>
11 #include <map>
12 #include <set>
13 #include <queue>
14 #include <bitset>
15 #include <string>
16 #include <complex>
17 #define LL long long
18 #define mod 1000000007
19 using namespace std;
20 int n,m;
21 unsigned x,y,z,t,ans[10000007];
22 unsigned rng61(){
23     x^=x<<16;
24     x^=x>>5;
25     x^=x<<1;
26     t=x;
27     x=y;
28     y=z;
29     z=t^x^y;
30     return z;
31 }
32 unsigned  aa[10000007];
33 struct node
34 {
35     int xx;
36     int pos;
37     friend bool operator < (node aaa,node bbb)
38     {
39         return aaa.xx < bbb.xx;
40     }
41 }bb[105];
42 int main()
43 {
44     int t=0;
45     while(scanf("%d %d %u %u %u",&n,&m,&x,&y,&z)!=EOF){
46         for(int i=1; i<=m; i++){
47             scanf("%d",&bb[i].xx);
48             bb[i].pos=i;
49             }
50         for(int i=0; i<n; i++)
51             aa[i]=rng61();
52         sort(bb+1,bb+1+m);
53         bb[m+1].xx=n;
54         for(int i=m;i>=1;i--){
55             nth_element(aa,aa+bb[i].xx,aa+bb[i+1].xx);
56             ans[bb[i].pos]=aa[bb[i].xx];
57         }
58         printf("Case #%d:",++t);
59         for(int i=1;i<=m;i++)
60             printf(" %u",ans[i]);
61         printf("\n");
62     }
63     return 0;
64 }

 

相关文章:

  • 2022-12-23
  • 2022-01-05
  • 2021-09-07
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2021-08-28
  • 2021-11-02
猜你喜欢
  • 2022-12-23
  • 2021-08-06
  • 2021-08-30
  • 2021-06-22
  • 2022-03-09
  • 2021-09-11
  • 2022-01-27
相关资源
相似解决方案