Submission #78814

#TimeUsernameProblemLanguageResultExecution timeMemory
78814wleung_bvgHighway Tolls (IOI18_highway)C++14
0 / 100
52 ms2936 KiB
#include "highway.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define eb emplace_back #define mp make_pair #define f first #define s second #define all(a) (a).begin(),(a).end() #define For(i,a,b) for(auto i=(a);i<(b);i++) #define FOR(i,b) For(i,0,b) #define Rev(i,a,b) for(auto i=(a);i>(b);i--) #define REV(i,a) Rev(i,a,-1) #define FORE(i,a) for(auto&&i:a) #define sz(a) (int((a).size())) #define MIN(a,b) ((a)=min((a),(b))) #define MAX(a,b) ((a)=max((a),(b))) using ll=long long;using ld=long double;using uint=unsigned int;using ull=unsigned long long; using pii=pair<int,int>;using pll=pair<ll,ll>;using pill=pair<int,ll>;using plli=pair<ll,int>;using pdd=pair<double,double>;using pld=pair<ld,ld>; constexpr const char nl='\n',sp=' ';constexpr const int INT_INF=0x3f3f3f3f;constexpr const ll LL_INF=0x3f3f3f3f3f3f3f3f; constexpr const double D_INF=numeric_limits<double>::infinity();constexpr const ld LD_INF=numeric_limits<ld>::infinity();constexpr const double EPS=1e-9; const int MAXN = 90005; bool vis[MAXN]; int q[MAXN]; vector<int> adj[MAXN]; void find_pair(int N, vector<int> U, vector<int> V, int A, int B) { int M = sz(U); FOR(i, M) { adj[U[i]].pb(V[i]); adj[V[i]].pb(U[i]); } vector<int> Q(M, 0); ll DA = ask(Q); int s = 0; vector<int> ans; FOR(_, 2) { fill(vis, vis + N, 0); int front = 0, back = 0, lo = 0, hi = N - 1, mid; vis[q[back++] = s] = 1; while (front < back) FORE(w, adj[q[front++]]) if (!vis[w]) vis[q[back++] = w] = 1; while (lo <= hi) { mid = lo + (hi - lo) / 2; FOR(i, mid) vis[q[i]] = 0; For(i, mid, N) vis[q[i]] = 1; FOR(i, M) Q[i] = vis[U[i]] && vis[V[i]]; if (ask(Q) == DA) hi = mid - 1; else lo = mid + 1; } ans.pb(s = q[hi]); } answer(ans[0], ans[1]); }
#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...