Submission #67646

#TimeUsernameProblemLanguageResultExecution timeMemory
67646tatatanEaster Eggs (info1cup17_eastereggs)C++11
100 / 100
48 ms624 KiB
#include <bits/stdc++.h> #include "grader.h" #define mp make_pair #define pb push_back #define pii pair<int,int> #define LL long long #define st first #define nd second #define endl '\n' using namespace std; vector<int> v[513]; int cnt,used[513],in[513]; void dfs(int x,int y,int en,vector<int> &add) { if(cnt==en) return; add.pb(x); in[x]=1; if(!used[x]) ++cnt; for(int i=0;i<v[x].size();++i) if(v[x][i]!=y) dfs(v[x][i],x,en,add); } int findEgg (int n, vector < pair < int, int > > br) { memset(used,0,sizeof used); for(int i=1;i<=n;++i) v[i].clear(); for(int i=0;i<n-1;++i) { v[br[i].st].pb(br[i].nd); v[br[i].nd].pb(br[i].st); } int left=n; while(left!=1) { vector<int> add; cnt=0; memset(in,0,sizeof in); dfs(1,0,left/2,add); /*cout<<left<<endl; for(int i=0;i<add.size();++i) cout<<add[i]<<" "; cout<<endl;*/ if(query(add)) { left=left/2; for(int i=1;i<=n;++i) if(!in[i]) used[i]=1; } else { for(int i=0;i<add.size();++i) used[add[i]]=1; left-=left/2; } } for(int i=1;i<=n;++i) if(!used[i]) return i; }

Compilation message (stderr)

eastereggs.cpp: In function 'void dfs(int, int, int, std::vector<int>&)':
eastereggs.cpp:22:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<v[x].size();++i)
              ~^~~~~~~~~~~~
eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:54:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int i=0;i<add.size();++i)
                ~^~~~~~~~~~~
eastereggs.cpp:63:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...