Submission #854238

# Submission time Handle Problem Language Result Execution time Memory
854238 2023-09-26T12:32:26 Z TimDee Traffickers (RMI18_traffickers) C++17
Compilation error
0 ms 0 KB
//  Esti <3 //\     šťastia pre nás :)//   you're already the best//             _//   ^ ^      //// >(O_O)<___////   \ __ __  \//    \\ \\ \\\\ #include <bits/stdc++.h>using namespace std; //#pragma GCC optimize("O3","unroll-loops")//#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #pragma GCC optimize("O3")#pragma GCC target("popcnt") using ll = long long;#define int long long#define forn(i,n) for(int i=0; i<(n); ++i)#define pb push_back#define pi pair<int,int>#define f first#define s second #define vii(a,n) vector<int> a(n); forn(i,n) cin>>a[i];#define all(x) x.begin(), x.end()#define rall(x) x.rbegin(), x.rend() mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());const int inf = 1e18;const int mod = 1e9+7;//998244353; // \\:smiling_face_with_3_hearts: :smiling_face_with_3_hearts:  :smiling_face_with_3_hearts:   //vidime sa veľmi skoro, moje slnko const int N = 30005; int t[21][21][N]; void add(int i, int j, int k, int x) {	for(;k<N;k|=k+1) t[i][j][k]+=x;}int sum(int i, int j, int r) {	int q=0;	for(;r>=0;r=(r&(r+1))-1) q+=t[i][j][r];	return q;} int par[N], top[N], sz[N], d[N];int ind[N], inv[N];int nxt=0;vector<int> adj[N]; void dfs(int u, int p) {	par[u]=p;	sz[u]=1;	for(auto&v:adj[u]) {		if (v==p) continue;		d[v]=d[u]+1;		dfs(v,u);		sz[u]+=sz[v];	}}void dfs(int u, int p, int t) {	ind[u]=nxt++;	inv[ind[u]]=u;	top[u]=t;	int mx=-1;	for(auto&v:adj[u]) {		if (v==p) continue;		if (mx==-1) mx=v;		if (sz[v] > sz[mx]) v=mx;	}	if (mx==-1) return;	dfs(mx,u,t);	for(auto&v:adj[u]) {		if (v==p || v==mx) continue;		dfs(v,u,v);	}} int go[N][15];int jump(int u, int x) {	forn(j,15) if ((x>>j)&1) u=go[u][j];	return u;} int lca(int u, int v) {	if (d[u]<d[v]) swap(u,v);	u=jump(u,d[u]-d[v]);	if (u==v) return u;	for(int j=14; j>=0; --j) {		if (go[u][j] == go[v][j]) continue;		u=go[u][j], v=go[v][j];	}	return par[u];} int f[20];int s[20];int fs=0, ss=0;void qadd(int u, int v, int z) {	int l = lca(u,v);		fs=0, ss=0;	while (u!=l) {		f[fs++]=u; u=par[u];	}	f[fs++]=u;	while (v!=l) {		s[ss++]=v; v=par[v];	}	for (int i=ss-1; i>=0; --i) f[fs++]=s[i];	int k=fs;	assert(k<=20);	forn(i,20) {		int u = f[i%k];		t[0][i][u]+=z;	}} ll qry(int u, int t) {	ll ans=0;	while (u!=0) {		forn(i,t+1) ans+=::t[0][i][u];		u=par[u];	}	forn(i,t+1) ans+=::t[0][i][u];	return ans;}ll query(int u, int v, int t) {	if (t<0) return 0;	ll ans = 0;	int l = lca(u,v);	ans += qry(u,t);	ans += qry(v,t);	ans -= 2ll*qry(l,t);	forn(i,t+1) {		ans+=::t[0][i][l];	}	return ans;} void solve() { 	int n; cin>>n;	forn(i,n-1) {		int u,v; cin>>u>>v; --u, --v;		adj[u].pb(v);		adj[v].pb(u);	}	dfs(0,0);	dfs(0,0,0);	forn(i,n) go[i][0]=par[i];	for(int j=1; j<15; ++j) forn(i,n) go[i][j]=go[go[i][j-1]][j-1]; 	int k; cin>>k;	forn(i,k) {		int u,v; cin>>u>>v; --u, --v;		qadd(u,v,1);	}	int q; cin>>q;	forn(i,q) {		int t; cin>>t;		if (t==1) {			int u,v; cin>>u>>v; --u, --v;			qadd(u,v,1);		} else if (t==2) {			int u,v; cin>>u>>v; --u, --v;			qadd(u,v,-1);		} else {			int u,v,a,b; cin>>u>>v>>a>>b; --u, --v;			ll ans = query(u,v,b);			ans -= query(u,v,a-1);			cout<<ans<<'\n';		}	} } int32_t main() {    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);    int t=1;    //cin>>t;    while (t--) solve();    return 0;}

Compilation message

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/crt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status