Submission #1129090

#TimeUsernameProblemLanguageResultExecution timeMemory
1129090denislavTourism (JOI23_tourism)C++20
Compilation error
0 ms0 KiB
# include <iostream> # include <vector> # include <algorithm> using namespace std; const int MAX=1e5+11; int n,m,q; vector<int> adj[MAX]; int c[MAX]; int h[MAX]; int up[MAX]; void dfs_h(int curr, int par) { up[curr]=par; for(int nxt: adj[curr]) { if(nxt==par) continue; h[nxt]=h[curr]+1; dfs_h(nxt,curr); } } struct query { int l,r,id; }z[MAX]; int out[MAX]; int block_sz; int get_block(int x) { if(x%block_sz==0) return x/block_sz; return x/block_sz+1; } int occ[MAX]; int ans=0; void add_vert(int u) { if(occ[u]==0) ans++; occ[u]++; } void del_vert(int u) { if(occ[u]==1) ans--; occ[u]--; } void path(int u, int v, bool add) { //cout<<"-->"<<u<<" "<<v<<" "<<add<<"\n"; while(u!=v) { if(h[u]>=h[v]) { //cout<<"->"<<u<<"\n"; if(add) add_vert(u); else del_vert(u); u=up[u]; } else { //cout<<"->"<<u<<"\n"; if(add) add_vert(v); else del_vert(v); v=up[v]; } } //cout<<"->"<<u<<"\n"; if(add) add_vert(u); else del_vert(u); } void Mo() { block_sz=sqrt(m); sort(z+1,z+1+q, [&](query A, query B) { int blockA=get_block(A.l),blockB=get_block(B.l); if(blockA!=blockB) return blockA<blockB; return A.r<B.r; }); int l=1,r=1; for(int i=1;i<=q;i++) { //cout<<":"<<z[i].l<<" "<<z[i].r<<"\n"; while(r<z[i].r) {path(c[r],c[r+1],1);r++;} while(l>z[i].l) {path(c[l-1],c[l],1);l--;} while(r>z[i].r) {path(c[r-1],c[r],0);r--;} while(l<z[i].l) {path(c[l],c[l+1],0);l++;} out[z[i].id]=max(1,ans); //cout<<"\n"; } for(int i=1;i<=q;i++) cout<<out[i]<<"\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin>>n>>m>>q; for(int i=1;i<n;i++) { int u,v; cin>>u>>v; adj[u].push_back(v); adj[v].push_back(u); } for(int i=1;i<=m;i++) cin>>c[i]; for(int i=1;i<=q;i++) { int l,r; cin>>l>>r; z[i]={l,r,i}; } dfs_h(1,0); Mo(); return 0; }

Compilation message (stderr)

tourism.cpp: In function 'void Mo()':
tourism.cpp:83:14: error: 'sqrt' was not declared in this scope
   83 |     block_sz=sqrt(m);
      |              ^~~~