Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 2e3 + 10;
- int ar[N][N];
- int cnt[N];
- void Solve(){
- int n;
- scanf("%d", &n);
- int ar[n + 1][n + 1];
- int cnt[n + 1];
- for(int i=1;i<=n;i++) cnt[i] = 0;
- for(int j=1;j<=n;j++){
- scanf("%d", &ar[0][j]);
- cnt[ ar[0][j] ] ++;
- }
- bool found = true;
- int last = 0;
- for(int i=1;i<=n and found;i++){
- for(int j=1;j<=n;j++){
- ar[i][j] = cnt[ ar[i-1][j] ];
- }
- for(int j=1;j<=n;j++){
- cnt[j] = 0;
- }
- for(int j=1;j<=n;j++){
- cnt[ ar[i][j] ] ++;
- }
- found = false;
- for(int j=1;j<=n;j++){
- if(cnt[j] != j and cnt[j] != 0) found = true;
- }
- last = i;
- }
- int q;
- scanf("%d", &q);
- while(q--){
- int j, k;
- scanf("%d%d", &j, &k);
- if(k <= last) printf("%d\n", ar[k][j]);
- else printf("%d\n", ar[last][j]);
- }
- }
- int main(){
- int t;
- scanf("%d", &t);
- while(t--){
- Solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement