Submission #1215284

#TimeUsernameProblemLanguageResultExecution timeMemory
1215284CELD_07Split the Attractions (IOI19_split)C++20
Compilation error
0 ms0 KiB
#pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include<bits/stdc++.h> #include<ext/pb_ds/assoc_container.hpp> typedef long long ll; typedef long double ld; #define endl "\n" #define vll vector<ll> #define sd second #define ft first #define all(x) x.begin(),x.end() #define allr(x) x.rbegin(),x.rend() #define pll pair<ll, ll> #define mod 1000000007 #define _set tree<pll, null_type, less<pll>, rb_tree_tag, tree_order_statistics_node_update> #define inf (ll)1e15 #define db(x) cout<<#x<<" : "<<x<<endl; #define PRESICION(x) cout.setf(ios::fixed,ios::floatfield); cout.precision(x); using namespace std; using namespace __gnu_pbds; ll dx[]={1, -1, 0, 0}; ll dy[]={0, 0, 1, -1}; inline ll sm(ll a, ll b){ return ((a%mod)+(b%mod))%mod; } inline ll ml(ll a, ll b){ return ((a%mod)*(b%mod))%mod; } inline ll rs(ll a, ll b){ return ((a%mod)-(b%mod)+mod)%mod; } ll bpow(ll a , ll b) { if (b==0)return 1; if (b%2!=0)return ((bpow(a, b-1)%mod)*(a%mod))%mod; ll r=bpow (a ,b/ 2) ; return ((r%mod)*(r%mod))%mod; } vector<vector<ll>> adj; vector<ll> v1; ll l, l1, l2; pair<ll, ll> p1={-1, -1}; inline void dfs(ll n, ll p, ll o1, ll o2, ll o3){ v1[n]=1; for(auto y: adj[n]){ if(y==p)continue; dfs(y, n, o1, o2, o3); v1[n]+=v1[y]; } if(v1[n]>=o1 && o3-v1[n]>=o2)p1={n, p}; } ll cnt=0; inline void dfs1(vector<int>& res, ll n, ll p, ll o2, ll k){ //cout<<n<<" "<<p<<" "<<cnt<<" "<<o2<<" "<<k<<endl; if(cnt==o2)return; res[n]=k; cnt++; for(auto y: adj[n]){ if(y!=p)dfs1(res, y, n, o2, k); } } vector<vector<ll>> adj; std::vector<int> find_split(int n, int a, int b, int c, std::vector<int> p, std::vector<int> q){ vector<vector<ll>>.swap(adj); adj.resize(n+1); for(int i=0; i<p.size(); i++){ adj[p[i]].push_back(q[i]); adj[q[i]].push_back(p[i]); } ll o=0, p=0; vector<int>res; res.assign(n, 0); for(int i=0; i<a; i++){ res[o]=1; for(auto y: adj[o]){ if(y!=p){p=o;o=y;break;} } } for(int i=a; i<a+b; i++){ res[i]=2; for(auto y: adj[o]){ if(y!=p){p=o;o=y;break;} } } for(int i=a+b; i<n; i++){ res[i]=3; for(auto y: adj[o]){ if(y!=p){p=o;o=y;break;} } } return res; } int main(){ vector<int> res=find_split(8, 2, 3, 3, {0, 1, 2, 2, 2, 2, 0}, {1, 2, 3, 4, 5, 6, 7}); for(auto y: res)cout<<y<<" "; cout<<endl; }

Compilation message (stderr)

split.cpp:61:20: error: redefinition of 'std::vector<std::vector<long long int> > adj'
   61 | vector<vector<ll>> adj;
      |                    ^~~
split.cpp:38:20: note: 'std::vector<std::vector<long long int> > adj' previously declared here
   38 | vector<vector<ll>> adj;
      |                    ^~~
split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:63:19: error: expected unqualified-id before '.' token
   63 | vector<vector<ll>>.swap(adj);
      |                   ^
split.cpp:69:9: error: declaration of 'll p' shadows a parameter
   69 | ll o=0, p=0;
      |         ^
split.cpp:62:74: note: 'std::vector<int> p' previously declared here
   62 | std::vector<int> find_split(int n, int a, int b, int c, std::vector<int> p, std::vector<int> q){
      |                                                         ~~~~~~~~~~~~~~~~~^