제출 #75082

#제출 시각아이디문제언어결과실행 시간메모리
75082faustaadp통행료 (IOI18_highway)C++17
12 / 100
457 ms262148 KiB
#include "highway.h"
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll i,jar,L,R,C,bew[101010];
vector<ll> v[101010],mun,xo[101010];
void dfs(ll aa,ll bb,ll cc)
{
    if(bb==jar)
        mun.pb(aa);
    ll ii;
    for(ii=0;ii<v[aa].size();ii++)
        if(v[aa][ii]!=cc)
        {
            bew[v[aa][ii]]=xo[aa][ii];
            dfs(v[aa][ii],bb+1,aa);
        }
}
void find_pair(int N, std::vector<int> U, std::vector<int> V, int A, int B) {
    ll M = U.size();
    for(i=0;i<M;i++)
    {
        v[U[i]].pb(V[i]);
        v[V[i]].pb(U[i]);
        xo[U[i]].pb(i);
        xo[V[i]].pb(i);
    }
    vector<int> tan(M);
    for(i=0;i<M;i++)
        tan[i]=0;
    jar=ask(tan)/A;
    dfs(0,0,0);
    //cout<<jar*A<<"\n";
 //   for(i=0;i<mun.size();i++)cout<<mun[i]<<" ";cout<<"\n";
    L=0;
    R=mun.size()-1;
    while(L<R)
    {
        C=(L+R)/2;
        for(i=0;i<M;i++)
            tan[i]=0;
        for(i=L;i<=C;i++)
            tan[bew[mun[i]]]=1;
        //for(i=0;i<M;i++)cout<<tan[i]<<" ";cout<<"\n";
        //cout<<L<<" "<<R<<" "<<ask(tan)<<"\n";
        if(ask(tan)>A*jar)R=C;
        else    L=C+1;
    }
    answer(0, mun[L]);
}

컴파일 시 표준 에러 (stderr) 메시지

highway.cpp: In function 'void dfs(long long int, long long int, long long int)':
highway.cpp:16:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(ii=0;ii<v[aa].size();ii++)
              ~~^~~~~~~~~~~~~
#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...