Submission #219894

#TimeUsernameProblemLanguageResultExecution timeMemory
219894DanerZeinSplit the Attractions (IOI19_split)C++14
0 / 100
5 ms384 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; typedef vector<int> vi; int vis[100010]; vi pa; vector<vi>G; void dfs(int u,int c){ if(pa.size()==c) return; // cout<<c<<" "<<pa.size()<<endl; pa.push_back(u); vis[u]=1; if(pa.size()==c) return; for(int i=0;i<G[u].size();i++){ if(vis[G[u][i]]==0){ dfs(G[u][i],c); } } } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { //vector<vi> G; G.resize(n); vi aux; map<int,int> m; m[a]=1; m[b]=2; m[c]=3; for(int i=0;i<p.size();i++){ int u,v; u=p[i]; v=q[i]; G[v].push_back(u); G[u].push_back(v); } // cout<<"Grafo creado"<<endl; vector<int> r(n,-1); //r.resize(n); map<int,int>:: iterator it; it=m.begin(); it++; pa.clear(); dfs(0,(*it).first); int k=0; sort(pa.begin(),pa.end()); for(int i=0;i<n;i++){ // cout<<pa[i]<<" "; if(pa[k]==i){ r[i]=(*it).second;; k++; } } //cout<<endl; // cout<<(*it).first<<endl; /*for(int i=0;i<r.size();i++){ cout<<r[i]<<" "; } cout<<endl;*/ it=m.begin(); pa.clear(); for(int i=0;i<n;i++){ if(vis[i]==0){ dfs(i,(*it).first); if(pa.size()<(*it).first){ //ca=0; pa.clear(); } else{ break; } } } if(pa.empty()){ for(int i=0;i<n;i++){ r[i]=0; } } else{ map<int,int>:: iterator it1=m.begin(); it1++; it1++; k=0; /*for(int i=0;i<r.size();i++){ cout<<r[i]<<" "; } cout<<endl; for(int i=0;i<pa.size();i++){ cout<<pa[i]<<" "; } cout<<endl;*/ sort(pa.begin(),pa.end()); for(int i=0;i<n;i++){ if(pa[k]==i and k!=pa.size()){ r[i]=(*it).second; k++; } else{ if(r[i]==-1) r[i]=(*it1).second; } } } return r; }

Compilation message (stderr)

split.cpp: In function 'void dfs(int, int)':
split.cpp:11:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(pa.size()==c) return;
      ~~~~~~~~~^~~
split.cpp:15:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(pa.size()==c) return;
      ~~~~~~~~~^~~
split.cpp:17:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<G[u].size();i++){
               ~^~~~~~~~~~~~
split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:31:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<p.size();i++){
               ~^~~~~~~~~
split.cpp:66:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if(pa.size()<(*it).first){
          ~~~~~~~~~^~~~~~~~~~~~
split.cpp:95:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(pa[k]==i and k!=pa.size()){
                     ~^~~~~~~~~~~
#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...