Submission #933030

#TimeUsernameProblemLanguageResultExecution timeMemory
933030vjudge1Regions (IOI09_regions)C++98
0 / 100
146 ms20936 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

int n, r, q;
int papa[200000];
int reg[200000];
vector<vector<int>> adj;

int busca(int node, int &r2){
    int cnt=0;
    if(reg[node]==r2)
        cnt++;
    for(int i=0; i<adj[node].size(); i++){
        cnt+=busca(adj[node][i], r2);
    }
    return cnt;
}

void checa(int r1, int r2){
    int ans=0;
    for(int i=0; i<n; i++){
        if(reg[i]==r1){
            ans+=busca(i, r2);
        }
        if(r1==r2)
            ans--;
    }
    cout<< ans;
    fflush(stdout);
}

void solve(){
    int x;
    cin>> n>> r>> q;
    adj.resize(n);
    cin>> reg[0];
    for(int i=1; i<n; i++){
        cin>> papa[i]>> reg[i];
        papa[i]--;
        adj[papa[i]].push_back(i);
        //adj[i].push_back(papa[i]);
    }
    
    int r1, r2;
    for(int i=0; i<q; i++){
        cin>> r1>> r2;
        checa(r1, r2);
    }
}
 
int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    
    int t=1;
    //cin>> t;
    while(t--){
        solve();
    }
    return 0;
}

Compilation message (stderr)

regions.cpp: In function 'int busca(int, int&)':
regions.cpp:15:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     for(int i=0; i<adj[node].size(); i++){
      |                  ~^~~~~~~~~~~~~~~~~
regions.cpp: In function 'void solve()':
regions.cpp:35:9: warning: unused variable 'x' [-Wunused-variable]
   35 |     int x;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...