Submission #89329

#TimeUsernameProblemLanguageResultExecution timeMemory
89329vvash17Triumphal arch (POI13_luk)C++14
70 / 100
2081 ms26688 KiB
#include <iostream> #include <vector> using namespace std; vector<int> graph[300001]; int city_num,from,to; int evaluate_result(int &search_start,int &need_num,int* been_there){ int available_neigbours = 0; int sub_tree_res = 0; been_there[search_start]++; int neighbour_size = graph[search_start].size(); for(int i = 0; i<neighbour_size; i++){ int tmp = graph[search_start][i]; if(been_there[tmp] == 0){ available_neigbours++; sub_tree_res += evaluate_result(tmp,need_num,been_there); } } int res = available_neigbours-(need_num-sub_tree_res); if(res < 0)return 0; return res; } int search_init(int &need_num){ int been_there[city_num+1] = {0}; int start = 1; return evaluate_result(start,need_num,been_there); } int main() { cin>>city_num; for(int i = 1; i<city_num; i++){ cin>>from>>to; graph[from].push_back(to); graph[to].push_back(from); } int result = 0; for(int need_num = 0; need_num<=city_num; need_num++){ result = search_init(need_num); if(result == 0){ result = need_num; break; } } cout<<result<<endl; return 0; }
#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...
#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...