Submission #428169

#TimeUsernameProblemLanguageResultExecution timeMemory
428169MOUF_MAHMALATSplit the Attractions (IOI19_split)C++14
0 / 100
1 ms332 KiB
#include "split.h" #include<bits/stdc++.h> using namespace std; typedef int ll; bool is[100009]; ll cnt[100009],x,y,z; vector<ll>ans; vector<vector<ll> >v; pair<ll,ll>id[3]; void dfs(ll d) { if(id[0].first) ans[d]=id[0].second,id[0].first--; else if(id[1].first) ans[d]=id[1].second,id[1].first--; else ans[d]=id[2].second,id[2].first--; is[d]=1; for(auto it:v[d]) if(is[it]==0) dfs(it); } void check(ll d) { if(ans[d]==1) x++; else if(ans[d]==2) y++; else z++; is[d]=1; for(auto it:v[d]) { if(is[it]==0&&ans[it]==ans[d]) dfs(it); } } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { v.resize(n); ans.resize(n); id[0]= {a,1}; id[1]= {b,2}; id[2]= {c,3}; sort(id,id+3); for(ll i=0; i<p.size(); i++) { cnt[p[i]]++,cnt[q[i]]++; v[p[i]].push_back(q[i]); v[q[i]].push_back(p[i]); } v.resize(n); for(ll i=0; i<n; i++) { if(cnt[i]>1) continue; dfs(i); memset(is,0,sizeof is); for(ll j=1; j<4; j++) for(ll i=0; i<n; i++) { if(ans[i]==j) { dfs(i); break; } } if(x!=a||y!=b||z!=c) for(ll i=0; i<n; i++) ans[i]=0; return ans; } dfs(0); for(ll j=1; j<4; j++) for(ll i=0; i<n; i++) { if(ans[i]==j) { dfs(i); break; } } if(x!=a||y!=b||z!=c) for(ll i=0; i<n; i++) ans[i]=0; return ans; }

Compilation message (stderr)

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:46:18: warning: comparison of integer expressions of different signedness: 'll' {aka 'int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for(ll i=0; i<p.size(); i++)
      |                 ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...