Submission #49401

#TimeUsernameProblemLanguageResultExecution timeMemory
49401georgerapeanuEaster Eggs (info1cup17_eastereggs)C++11
81 / 100
12 ms600 KiB
#include <bits/stdc++.h> #include "grader.h" using namespace std; vector<int> G[600]; vector<int> nodes; void linearize(int node,int father){ nodes.push_back(node); for(auto it:G[node]){ if(it != father){ linearize(it,node); nodes.push_back(node); } } } vector<int> que; map< vector<int> , int > Map; bool done = 0; bool ok(int le,int ri){ que.clear(); for(int i = le;i <= ri;i++){ que.push_back(nodes[i]); } sort(que.begin(),que.end()); que.resize(unique(que.begin(),que.end()) - que.begin()); if(Map.count(que)){ return Map[que]; } return Map[que] = query(que); } int findEgg (int N, vector < pair < int, int > > bridges){ Map.clear(); if(!done){ nodes.clear(); for(int i = 1;i <= N;i++){ G[i].clear(); } for(auto it:bridges){ G[it.first].push_back(it.second); G[it.second].push_back(it.first); } linearize(1,0); done = 1; } int lo = 0,hi = (int)nodes.size() - 1; while(hi - lo > 0){ int mid = (lo + hi - 1) / 2; if(ok(lo,mid)){ hi = mid; } else{ lo = mid + 1; } } return nodes[lo]; }

Compilation message (stderr)

eastereggs.cpp: In function 'bool ok(int, int)':
eastereggs.cpp:35:21: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
     return Map[que] = query(que);
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...