답안 #823251

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
823251 2023-08-12T10:03:11 Z Trumling 통행료 (IOI18_highway) C++14
0 / 100
207 ms 262144 KB
#include "highway.h"
#include<bits/stdc++.h>
using namespace  std;
#define F first 
#define S second 
#define all(x) x.begin(),x.end()  
typedef long long ll;
#define INF 99999999999999
#define pb  push_back

vector<vector<pair<int,int> > >g;
vector<int>d,R;


void dfs(int start,int pre)
{
    for(pair<int,int> x:g[start])
        if(x.F!=pre)
        {
            d[x.F]=d[start]+1;
            R[x.F]=x.S;
            dfs(x.F,start);
        }
}

void find_pair(int N, vector<int> U, vector<int> V, int A, int B) {
  int M = U.size();
  g.assign(N,vector<pair<int,int> >());
  d.assign(N,0);
  R.assign(N,0);
  for(int i=0;i<M;i++)
  {
    g[U[i]].pb({V[i],i});
    g[V[i]].pb({U[i],i});
  }
 dfs(0,0);
 vector<int>a(M,0);

 ll ans=ask(a);
 vector<int>v;
 for(int i=1;i<N;i++)
 if(d[i]==ans/A)
 {
    v.pb(R[i]);
 }


 ll l=0,r=v.size()-1;
 ll idx=0;
//cout<<'\n';

 while(l<r)
 {
    
    ll  mid=(l+r)/2;
    for(int  i=l;i<=mid;i++)
    a[i]=(idx+1)%2;

    ll curr=ask(a);
    if(idx==0)
    {
        if(curr>ans)
        {
           r=mid; 
           idx=1;
        }
        else
        l=mid+1;
    }
    else
    {
        if(curr==ans)
        {
            r=mid;
            idx=0;
        }
        else
        l=mid+1;
    }
    //cout<<l<<' '<<r<<'\n';
 }
 for(int i=1;i<N;i++)
 if(R[i]==v[l])
 {
    ans=i;
    break;
 }
answer(0,ans);
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 296 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 1524 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 207 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 173 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -