Submission #1034958

#TimeUsernameProblemLanguageResultExecution timeMemory
1034958vjudge1전선 연결 (IOI17_wiring)C++17
Compilation error
0 ms0 KiB
#include "books.h" #include<bits/stdc++.h> using namespace std; int par[1001000],sz[1001000]; int abp(int n){ return par[n]?par[n]=abp(par[n]):n; } int merge(int a,int b){ a=abp(a+1);b=abp(b+1); if(a-b)par[a]=b, sz[b]+=sz[a]; return a!=b; } set<int>notanedge,ST; map<int,int>mp; int s_; void mergefrom(int l,int r){ ST.insert(l),ST.insert(r); while(notanedge.lower_bound(l)!=notanedge.lower_bound(r)){ int k=*notanedge.lower_bound(l); merge(k,k+1); notanedge.erase(k); mp[k];mp[k+1]; } } long long minimum_walk(std::vector<int> p, int s) { s_=s; long long ans=0; int n=p.size(),K=0; for(int i=0;i<n-1;i++) notanedge.insert(i); for(int i=0;i<n;i++) if(i-p[i]) ans+=abs(i-p[i]), mergefrom(i,p[i]); if(ST.empty())return 0; vector<tuple<int,int,int>>v; for(auto [i,j]:mp){ auto it=mp.upper_bound(i); if(it!=mp.end()) v.push_back({it->first-i,i,it->first}); } sort(v.begin(),v.end()); for(auto [w,x,y]:v) ans+=w*2*merge(x,y); int ans2=min(abs(*ST.begin()-s),abs(*--ST.end()-s)); return ans+2*ans2; }

Compilation message (stderr)

wiring.cpp:1:10: fatal error: books.h: No such file or directory
    1 | #include "books.h"
      |          ^~~~~~~~~
compilation terminated.