제출 #1095477

#제출 시각아이디문제언어결과실행 시간메모리
1095477MMihalev도시들 (IOI15_towns)C++14
25 / 100
13 ms1112 KiB
#include "towns.h"
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int MAX_N=2e2+2;
int diam;
int tov[MAX_N];
int tou[MAX_N];
int to0[MAX_N];
int n;

int hubDistance(int N, int sub)
{
    n=N;

    int u=0;
    int far=0,v;
    for(int i=1;i<n;i++)
    {
        int cur=getDistance(u,i);
        to0[i]=cur;
        if(cur>far)
        {
            far=cur;
            v=i;
        }
    }//0->v

    diam=0;
    for(int i=0;i<n;i++)
    {
        if(i==v)continue;
        int cur;
        if(i==0)cur=to0[v];
        else cur=getDistance(i,v);

        tov[i]=cur;

        if(cur>diam)
        {
            diam=cur;
            u=i;
        }
    }//v->u

    for(int i=0;i<n;i++)
    {
        if(i==u)continue;
        if(i==0)tou[i]=to0[u];
        if(i==v)tou[i]=tov[u];
        tou[i]=getDistance(u,i);
    }//u->all


    int cntneg=0,cntpos=0;
    int mindif=1e9;
    for(int i=0;i<n;i++)
    {
        if(i==u or i==v)continue;

        int x=tou[i];
        int y=tov[i];
        int com=((x+y)-diam)/2;

        x-=com;
        y-=com;

        int res=x-y;

        if(res<0)cntneg++;
        else if(res>0)cntpos++;

        mindif=min(mindif,abs(res));
    }

    int R=(diam-mindif)/2+mindif;

    if(sub==4)
    {
        int rem=n-cntpos-cntneg;

        if(rem*2<=n && cntpos*2<=n && cntneg*2<=n)R=-R;
    }

	return R;
}

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

towns.cpp: In function 'int hubDistance(int, int)':
towns.cpp:51:9: warning: 'v' may be used uninitialized in this function [-Wmaybe-uninitialized]
   51 |         if(i==v)tou[i]=tov[u];
      |         ^~
#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...