Submission #387326

#TimeUsernameProblemLanguageResultExecution timeMemory
387326alireza_kaviani도시들 (IOI15_towns)C++11
35 / 100
21 ms1132 KiB
#include <bits/stdc++.h>
#include "towns.h"
using namespace std;

#define sep			' '

const int MAXN = 1e3 + 10;
const int MOD = 1e9 + 7;

int dist[3][MAXN];

int ask(int ind , int v , int n){
	int mx = 0;
	for(int i = 0 ; i < n ; i++){
		dist[ind][i] = getDistance(v , i);
		if(dist[ind][i] > dist[ind][mx])	mx = i;
	}
	return mx;
}

int hubDistance(int N, int sub) {
	int v = ask(0 , 0 , N);
	int u = ask(1 , v , N);
	ask(2 , u , N);
	int mn = MOD;
	for(int i = 0 ; i < N ; i++){
		mn = min(mn , abs(dist[1][i] - dist[2][i]));
//		cout << i << sep << dist[1][i] << sep << dist[2][i] << endl; 
	}
//	cout << v << sep << u << endl;
	int xl = 0 , xr = 0 , yl = 0 , yr = 0;
	for(int i = 0 ; i < N ; i++){
		int val = dist[1][i] - dist[2][i];
		if(val < -mn)	xl++;
		if(val == -mn)	yl++;
		if(val == mn)	yr++;
		if(val > mn)	xr++;
	}
	int R = (dist[1][u] + mn) / 2;
	if(xl <= N / 2 && yl <= N / 2 && xr + yr <= N / 2)	return R;
	if(xr <= N / 2 && yr <= N / 2 && xl + yl <= N / 2)	return R;
	return -R;
}

Compilation message (stderr)

towns.cpp: In function 'int hubDistance(int, int)':
towns.cpp:21:28: warning: unused parameter 'sub' [-Wunused-parameter]
   21 | int hubDistance(int N, int sub) {
      |                        ~~~~^~~
#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...