답안 #823295

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
823295 2023-08-12T10:32:51 Z Trumling 통행료 (IOI18_highway) C++14
0 / 100
31 ms 848 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);


vector<int>a(M,0);
ll ans=ask(a);
vector<int>v;

for(int i=ans/A/2;i<M;i+=ans/A)
v.pb(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[v[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;
    }
 }
 a.assign(M,0);
 ll m=v[l];
 l=max(0LL,m-ans/A);
 r=min((ll)M-1,m+ans/A);
 
 while(l<r)
 {
    ll mid=(l+r)/2;

    a[mid]=1;
    ll curr=ask(a);

    if(curr>ans)
    l=mid;
    else
    r=mid-1;

    a[mid]=0;
 }
 
 answer(l+1,l+1-ans/A);

}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 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 9 ms 720 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 336 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 31 ms 824 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 848 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -