# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
302423 | 2020-09-18T16:35:54 Z | square1001 | 도시들 (IOI15_towns) | C++14 | 28 ms | 512 KB |
#include "towns.h" #include <cmath> #include <vector> #include <iostream> #include <algorithm> using namespace std; int hubDistance(int N, int sub) { if(sub == 1 || sub == 2) { vector<int> da(N); for(int i = 1; i < N; ++i) { da[i] = getDistance(0, i); } int ma = max_element(da.begin(), da.end()) - da.begin(); vector<int> db(N); for(int i = 0; i < N; ++i) { if(i != ma) { db[i] = getDistance(ma, i); } } int mb = max_element(db.begin(), db.end()) - db.begin(); int mindiff = (1 << 30); for(int i = 0; i < N; ++i) { if(i != ma && i != mb) { int dy = getDistance(mb, i); mindiff = min(mindiff, abs(db[i] - dy)); } } return (db[mb] + mindiff) / 2; } if(sub == 4) { vector<int> da(N); for(int i = 1; i < N; ++i) { da[i] = getDistance(0, i); } int ma = max_element(da.begin(), da.end()) - da.begin(); vector<int> db(N); for(int i = 0; i < N; ++i) { if(i != ma) { db[i] = getDistance(ma, i); } } int mb = max_element(db.begin(), db.end()) - db.begin(); vector<int> ds(N); int mindiff = (1 << 30); for(int i = 0; i < N; ++i) { int dy = getDistance(mb, i); ds[i] = db[i] - dy; mindiff = min(mindiff, abs(ds[i])); } int R = (db[mb] + mindiff) / 2; int cl1 = 0, cm1 = 0, cr1 = 0; for(int i = 0; i < N; ++i) { if(ds[i] < mindiff) ++cl1; else if(ds[i] == mindiff) ++cm1; else ++cr1; } if(cm1 >= 1 && cl1 <= N / 2 && cm1 <= N / 2 && cr1 <= N / 2) { return R; } int cl2 = 0, cm2 = 0, cr2 = 0; for(int i = 0; i < N; ++i) { if(ds[i] < -mindiff) ++cl2; else if(ds[i] == -mindiff) ++cm2; else ++cr2; } if(cm2 >= 1 && cl2 <= N / 2 && cm2 <= N / 2 && cr2 <= N / 2) { return R; } return -R; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 19 ms | 384 KB | Output is correct |
2 | Correct | 15 ms | 384 KB | Output is correct |
3 | Correct | 1 ms | 256 KB | Output is correct |
4 | Correct | 28 ms | 384 KB | Output is correct |
5 | Correct | 21 ms | 512 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 19 ms | 384 KB | Output is correct |
2 | Correct | 16 ms | 384 KB | Output is correct |
3 | Correct | 22 ms | 504 KB | Output is correct |
4 | Correct | 20 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 16 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 21 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 16 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 16 ms | 512 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |