제출 #571360

#제출 시각아이디문제언어결과실행 시간메모리
571360DeepessonEaster Eggs (info1cup17_eastereggs)C++17
100 / 100
46 ms464 KiB
#include<bits/stdc++.h> #include "grader.h" #define MAX 600 using namespace std; int findEgg(int N, vector < pair < int, int > > bridges); int query(vector < int > islands); std::vector<int> con[MAX]; std::map<int,bool> candidatos; std::vector<int> buscar; int counta=0,obj; void dfs(int pos,int prev){ // std::cout<<"Explora "<<pos<<" "<<prev<<" "<<obj<<"\n"; buscar.push_back(pos); if(candidatos.find(pos)!=candidatos.end()){ ++counta; } if(counta==obj)return; for(auto&x:con[pos]){ if(x==prev)continue; if(counta==obj)return; dfs(x,pos); } } int findEgg (int N, vector < pair < int, int > > bridges) { for(int i=0;i!=N+20;++i)con[i].clear(); // std::cout<<"Lesgo\n"; for(int i=1;i!=N+1;++i){ candidatos[i]=1; if(i!=1){ // std::cout<<bridges[i-2].first<<" "<<bridges[i-2].second<<"\n"; con[bridges[i-2].first].push_back(bridges[i-2].second); con[bridges[i-2].second].push_back(bridges[i-2].first); } } // std::cout<<"key\n"; while(candidatos.size()!=1){ obj=candidatos.size()/2; buscar.clear();counta=0; dfs(1,-1); // std::cout<<"busca "<<buscar.size()<<"\n"; //for(auto&x:buscar)std::cout<<x<<" ";std::cout<<"\n"; bool val = query(buscar); if(!val){ for(auto&x:buscar){ auto tem = candidatos.find(x); if(tem!=candidatos.end())candidatos.erase(tem); } }else { std::map<int,bool> obrigatorio; for(auto&x:buscar)obrigatorio[x]=true; std::vector<int> fora; for(auto&x:candidatos)if(!obrigatorio[x.first])fora.push_back(x.first); for(auto&x:fora){ auto tem = candidatos.find(x); if(tem!=candidatos.end())candidatos.erase(tem); } } } int val; for(auto&x:candidatos)val=x.first; return val; }

컴파일 시 표준 에러 (stderr) 메시지

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:64:12: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
   64 |     return val;
      |            ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...