# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
431016 | 2021-06-17T08:57:07 Z | juggernaut | Regions (IOI09_regions) | C++17 | 152 ms | 30096 KB |
#include<bits/stdc++.h> #define fr first #define sc second using namespace std; void usaco(string s){freopen((s+".in").c_str(),"r",stdin);freopen((s+".out").c_str(),"w",stdout);} typedef long long ll; #define USING_ORDERED_SET 0 #if USING_ORDERED_SET #include<bits/extc++.h> using namespace __gnu_pbds; template<class T>using ordered_set=tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>; #endif template<class T>void umax(T &a,T b){if(a<b)a=b;} template<class T>void umin(T &a,T b){if(b<a)a=b;} #ifdef IOI2021SG #define printl(args...)printf(args) #else #define printl(args...)((void)0) #endif int n,r,q; int reg[200005]; vector<int>g[200005]; int timer; int tin[200005]; int tout[200005]; int precalc[5005][5005]; bool big[25005]; int id[25005]; int tot; int cnt[25005]; int tmp[25005]; void dfs(int v){ if(big[reg[v]])for(int i=1;i<=tot;i++)precalc[i][id[reg[v]]]+=tmp[i]; tmp[id[reg[v]]]++; tin[v]=++timer; for(int to:g[v])dfs(to); tout[v]=++timer; tmp[id[reg[v]]]--; } vector<pair<int,int>>color[25005]; vector<int>spec[25005]; int main(){ scanf("%d%d%d",&n,&r,&q); scanf("%d",®[1]); cnt[reg[1]]++; for(int i=2;i<=n;i++){ int par; cnt[reg[i]]++; scanf("%d%d",&par,®[i]); g[par].push_back(i); } for(int i=1;i<=r;i++)if(cnt[i]>50){ big[i]=true; id[i]=++tot; } dfs(1); for(int i=1;i<=n;i++){ spec[reg[i]].push_back(tout[i]); color[reg[i]].emplace_back(tin[i],tout[i]); } for(int i=1;i<=r;i++){ sort(color[i].begin(),color[i].end()); sort(spec[i].begin(),spec[i].end()); } exit(0); while(q--){ int x,y; scanf("%d%d",&x,&y); int ans=0; if(!big[x]){ for(auto to:color[x]){ ans+=(lower_bound(color[y].begin(),color[y].end(),make_pair(to.sc,0))-color[y].begin())-(lower_bound(color[y].begin(),color[y].end(),make_pair(to.fr,0))-color[y].begin()); } }else if(big[x]&&big[y]){ ans=precalc[id[x]][id[y]]; }else{ for(auto to:color[y]){ ans+=(lower_bound(color[x].begin(),color[x].end(),make_pair(to.fr,0))-color[x].begin()); ans-=lower_bound(spec[x].begin(),spec[x].end(),to.fr)-spec[x].begin(); } } printf("%d\n",ans); fflush(stdout); } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 6088 KB | Unexpected end of file - int32 expected |
2 | Incorrect | 4 ms | 6088 KB | Unexpected end of file - int32 expected |
3 | Incorrect | 4 ms | 6088 KB | Unexpected end of file - int32 expected |
4 | Incorrect | 4 ms | 6088 KB | Unexpected end of file - int32 expected |
5 | Incorrect | 4 ms | 6088 KB | Unexpected end of file - int32 expected |
6 | Incorrect | 4 ms | 6216 KB | Unexpected end of file - int32 expected |
7 | Incorrect | 5 ms | 6216 KB | Unexpected end of file - int32 expected |
8 | Incorrect | 6 ms | 6216 KB | Unexpected end of file - int32 expected |
9 | Incorrect | 7 ms | 6728 KB | Unexpected end of file - int32 expected |
10 | Incorrect | 11 ms | 6728 KB | Unexpected end of file - int32 expected |
11 | Incorrect | 11 ms | 7004 KB | Unexpected end of file - int32 expected |
12 | Incorrect | 12 ms | 7620 KB | Unexpected end of file - int32 expected |
13 | Incorrect | 15 ms | 7368 KB | Unexpected end of file - int32 expected |
14 | Incorrect | 19 ms | 8008 KB | Unexpected end of file - int32 expected |
15 | Incorrect | 20 ms | 11208 KB | Unexpected end of file - int32 expected |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 41 ms | 11420 KB | Unexpected end of file - int32 expected |
2 | Incorrect | 48 ms | 10124 KB | Unexpected end of file - int32 expected |
3 | Incorrect | 42 ms | 13612 KB | Unexpected end of file - int32 expected |
4 | Incorrect | 23 ms | 8008 KB | Unexpected end of file - int32 expected |
5 | Incorrect | 25 ms | 10024 KB | Unexpected end of file - int32 expected |
6 | Incorrect | 32 ms | 9428 KB | Unexpected end of file - int32 expected |
7 | Incorrect | 42 ms | 10572 KB | Unexpected end of file - int32 expected |
8 | Incorrect | 52 ms | 16484 KB | Unexpected end of file - int32 expected |
9 | Incorrect | 100 ms | 16856 KB | Unexpected end of file - int32 expected |
10 | Incorrect | 102 ms | 22512 KB | Unexpected end of file - int32 expected |
11 | Incorrect | 121 ms | 16428 KB | Unexpected end of file - int32 expected |
12 | Incorrect | 147 ms | 17724 KB | Unexpected end of file - int32 expected |
13 | Incorrect | 108 ms | 18056 KB | Unexpected end of file - int32 expected |
14 | Incorrect | 152 ms | 17896 KB | Unexpected end of file - int32 expected |
15 | Incorrect | 105 ms | 23104 KB | Unexpected end of file - int32 expected |
16 | Incorrect | 109 ms | 30096 KB | Unexpected end of file - int32 expected |
17 | Incorrect | 113 ms | 28736 KB | Unexpected end of file - int32 expected |