# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1142300 | byunjaewoo | Highway Tolls (IOI18_highway) | C++20 | 161 ms | 11748 KiB |
#include "highway.h"
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=90010;
int n, m, p, u, v, dist, ans1, ans2, du[N], dv[N];
vector<pair<int, int>> vs, vt;
queue<int> q;
vector<pair<int, int>> adj[N];
void find_pair(int N, vector<int> U, vector<int> V, int A, int B) {
n=N, m=U.size();
for(int i=0; i<m; i++) adj[U[i]].push_back({V[i], i}), adj[V[i]].push_back({U[i], i});
vector<int> tmp(m, 0);
dist=ask(tmp)/A;
for(int s=0, e=m-1; s<e; ) {
int mid=(s+e)/2;
vector<int> tmp(m, 0);
for(int j=0; j<=mid; j++) tmp[j]=1;
if(ask(tmp)==dist*A) p=s=mid+1;
else e=mid;
}
u=U[p], v=V[p];
fill(du, du+n, N), du[u]=0, q.push(u);
while(!q.empty()) {
int curr=q.front(); q.pop();
for(auto [next, w]:adj[curr]) if(du[next]==N) du[next]=du[curr]+1, q.push(next);
}
fill(dv, dv+n, N), dv[v]=0, q.push(v);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |