Submission #1073806

#TimeUsernameProblemLanguageResultExecution timeMemory
1073806shezittHighway Tolls (IOI18_highway)C++14
0 / 100
9 ms628 KiB
#include "highway.h" #include <bits/stdc++.h> using ll = long long; using namespace std; #define pb push_back #define sz(x) (int)x.size() void find_pair(int N, std::vector<int> U, std::vector<int> V, int A, int B) { int M = U.size(); vector<int> tmp(M, 0); vector<bool> sirve(M, 1); ll W = ask(tmp); for(int i=0; i<M; ++i){ tmp[i] = 1; ll w = ask(tmp); if(w == W){ sirve[i] = 0; } tmp[i] = 0; } vector<vector<pair<int,int>>> adj(N+1); for(int i=0; i<M; ++i) if(sirve[i]){ adj[U[i]].pb({V[i], i}); adj[V[i]].pb({U[i], i}); } int aristas = W / A; vector<int> pa(N+1, -1); auto bfs = [&](int at) -> vector<int> { vector<int> res; vector<int> dis(N+1, N+10); queue<int> q; q.push(at); dis[at] = 0; while(sz(q)){ int cur = q.front(); q.pop(); if(dis[cur] == aristas){ res.pb(cur); } for(auto [u, id] : adj[cur]){ if(dis[cur] + 1 < dis[u]){ dis[u] = dis[cur] + 1; q.push(u); pa[u] = id; } } } return res; }; vector<int> cands = bfs(0); int ans = 0; for(int x : cands){ int ante = pa[x]; tmp[ante] = 1; ll w = ask(tmp); if(w != W){ ans = x; break; } tmp[ante] = 0; } answer(0, ans); }

Compilation message (stderr)

highway.cpp: In lambda function:
highway.cpp:49:16: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   49 |       for(auto [u, id] : adj[cur]){
      |                ^
#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...