Submission #310416

#TimeUsernameProblemLanguageResultExecution timeMemory
310416aZvezdaTowns (IOI15_towns)C++14
25 / 100
28 ms416 KiB
#include "towns.h" #include <bits/stdc++.h> using namespace std; //#pragma GCC optimize ("O3") //#pragma GCC target ("sse4") #define endl "\n" typedef long long ll; template<class T, class T2> inline ostream &operator <<(ostream &out, const pair<T, T2> &x) { out << x.first << " " << x.second; return out;} template<class T, class T2> inline istream &operator >>(istream &in, pair<T, T2> &x) { in >> x.first >> x.second; return in;} template<class T, class T2> inline bool chkmax(T &x, const T2 &y) { return x < y ? x = y, 1 : 0; } template<class T, class T2> inline bool chkmin(T &x, const T2 &y) { return x > y ? x = y, 1 : 0; } const ll mod = 1e9 + 7; #define out(x) "{" << (#x) << ": " << x << "} " const int MAX_N = 115; int dist0[MAX_N], dist1[MAX_N]; map<int, vector<int> > comp; int cost[MAX_N]; int hubDistance(int N, int sub) { int first = 0; for(int i = 1; i < N; i ++) { dist0[i] = getDistance(0, i); if(dist0[i] > dist0[first]) { first = i; } } int R = mod; int second = 0; for(int i = 0; i < N; i ++) { dist1[i] = getDistance(first, i); if(dist1[i] > dist1[second]) { second = i; } } vector<int> hubs; for(int i = 0; i < N; i ++) { int now = dist0[i] + dist1[i] - dist1[0]; now /= 2; now = dist1[i] - now; cost[i] = now; comp[now].push_back(i); chkmin(R, max({now, dist1[second] - now})); } int toLft = 0, toRght = N; bool centroid = false; for(auto it : comp) { auto arr = it.second; toRght -= arr.size(); if(max(cost[it.first], dist1[second] - cost[it.first]) == R && toLft <= N / 2 && toRght <= N / 2) { } toLft += arr.size(); } if(!centroid) { return -R; } else { return R; } }

Compilation message (stderr)

towns.cpp: In function 'int hubDistance(int, int)':
towns.cpp:48:28: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   48 |         toRght -= arr.size();
      |                            ^
towns.cpp:52:27: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   52 |         toLft += arr.size();
      |                           ^
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...