Submission #677841

# Submission time Handle Problem Language Result Execution time Memory
677841 2023-01-04T12:28:15 Z Baytoro Regions (IOI09_regions) C++17
1 / 100
6520 ms 118648 KB
#include <bits/stdc++.h>
using namespace std;
#define ios ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL);
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define fr first
#define sc second
#define endl '\n'
void fopn(string name){
	freopen((name+".in").c_str(),"r",stdin);
	freopen((name+".out").c_str(),"w",stdout);
}
//const long long INF=1e18,mod=998244353;
int n,r,q;
const int N=2e5+5,block=25005;
int a[N],st[N],ed[N],B[N],used[N];
vector<int> g[N],v[block];
int cnt=1;
unordered_map<int,int> clc[block];
void dfs(int x, int p=-1){
	st[x]=cnt++;
	for(auto it: g[x]){
		if(it==p) continue;
		dfs(it,x);
	}
	ed[x]=cnt-1;
}
void solve(){
	cin>>n>>r>>q>>a[1];
	for(int i=2;i<=n;i++){
		int x;cin>>x>>a[i];
		g[x].pb(i);
	}
	int b=sqrt(n);
	dfs(1);
	for(int i=1;i<=n;i++) B[st[i]]=i;
	for(int i=1;i<=n;i++) v[a[B[i]]].pb(st[B[i]]);
	for(int i=1;i<=n;i++){
		if(used[a[B[i]]]) continue;
		if((int)v[a[B[i]]].size()<=b) continue;
		used[a[B[i]]]=1;
		int pref[n+2]{0};
		for(auto it: v[a[B[i]]]){
			int l=st[B[it]],r=ed[B[it]];
			pref[l]++;
			pref[r+1]--;
		}
		for(int j=1;j<=n;j++){
			pref[j]+=pref[j-1];
			clc[a[B[j]]][a[B[i]]]+=pref[j];
		}
	}
	while(q--){
		int a,b;cin>>a>>b;
		int ans=0;
		if((int)v[a].size()<=b){
			for(auto it: v[a]){
				int l=st[B[it]],r=ed[B[it]];
				auto i1=upper_bound(all(v[b]),r)-v[b].begin();
				auto i2=upper_bound(all(v[b]),l)-v[b].begin();
				if(i1){
					ans+=max((int)(i1-i2),0);
				}
			}
		}
		else
			ans=clc[b][a];
		cout<<ans<<endl;
	}
}
main(){
	//fopn("newbarn");
	//ios;
	int T=1;
	//cin>>T;
	while(T--){
		solve();
	}
}

Compilation message

regions.cpp:72:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   72 | main(){
      | ^~~~
regions.cpp: In function 'void fopn(std::string)':
regions.cpp:11:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |  freopen((name+".in").c_str(),"r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
regions.cpp:12:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |  freopen((name+".out").c_str(),"w",stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 6864 KB Output is correct
2 Incorrect 4 ms 6864 KB Output isn't correct
3 Incorrect 7 ms 6864 KB Output isn't correct
4 Incorrect 8 ms 6864 KB Output isn't correct
5 Incorrect 11 ms 6892 KB Output isn't correct
6 Incorrect 21 ms 7060 KB Output isn't correct
7 Incorrect 38 ms 7076 KB Output isn't correct
8 Incorrect 46 ms 7024 KB Output isn't correct
9 Incorrect 42 ms 7480 KB Output isn't correct
10 Incorrect 56 ms 7488 KB Output isn't correct
11 Incorrect 161 ms 7836 KB Output isn't correct
12 Incorrect 162 ms 8212 KB Output isn't correct
13 Incorrect 197 ms 7988 KB Output isn't correct
14 Incorrect 218 ms 8900 KB Output isn't correct
15 Incorrect 211 ms 11468 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 915 ms 12620 KB Output isn't correct
2 Incorrect 831 ms 11752 KB Output isn't correct
3 Incorrect 1566 ms 15820 KB Output isn't correct
4 Incorrect 289 ms 8524 KB Output isn't correct
5 Incorrect 302 ms 10064 KB Output isn't correct
6 Incorrect 1661 ms 27288 KB Output isn't correct
7 Incorrect 1896 ms 31264 KB Output isn't correct
8 Incorrect 2108 ms 57136 KB Output isn't correct
9 Incorrect 2498 ms 15916 KB Output isn't correct
10 Incorrect 5754 ms 118648 KB Output isn't correct
11 Incorrect 4062 ms 15468 KB Output isn't correct
12 Incorrect 1410 ms 20176 KB Output isn't correct
13 Incorrect 1732 ms 19924 KB Output isn't correct
14 Incorrect 3430 ms 33636 KB Output isn't correct
15 Incorrect 6054 ms 25516 KB Output isn't correct
16 Incorrect 6520 ms 31036 KB Output isn't correct
17 Incorrect 6359 ms 42436 KB Output isn't correct