| Task: | Town center |
| Sender: | aalto25h_007 |
| Submission time: | 2025-10-22 17:23:00 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.00 s | details |
| #14 | ACCEPTED | 0.00 s | details |
| #15 | ACCEPTED | 0.00 s | details |
| #16 | ACCEPTED | 0.00 s | details |
| #17 | ACCEPTED | 0.00 s | details |
| #18 | ACCEPTED | 0.00 s | details |
| #19 | ACCEPTED | 0.00 s | details |
| #20 | ACCEPTED | 0.00 s | details |
| #21 | ACCEPTED | 0.00 s | details |
| #22 | ACCEPTED | 0.00 s | details |
| #23 | ACCEPTED | 0.00 s | details |
| #24 | ACCEPTED | 0.00 s | details |
| #25 | ACCEPTED | 0.00 s | details |
| #26 | ACCEPTED | 0.00 s | details |
| #27 | ACCEPTED | 0.00 s | details |
| #28 | ACCEPTED | 0.00 s | details |
| #29 | ACCEPTED | 0.00 s | details |
| #30 | ACCEPTED | 0.01 s | details |
| #31 | ACCEPTED | 0.01 s | details |
| #32 | ACCEPTED | 0.00 s | details |
| #33 | ACCEPTED | 0.00 s | details |
| #34 | ACCEPTED | 0.01 s | details |
| #35 | ACCEPTED | 0.00 s | details |
| #36 | ACCEPTED | 0.01 s | details |
| #37 | ACCEPTED | 0.00 s | details |
| #38 | ACCEPTED | 0.00 s | details |
| #39 | ACCEPTED | 0.00 s | details |
| #40 | ACCEPTED | 0.01 s | details |
| #41 | ACCEPTED | 0.01 s | details |
| #42 | ACCEPTED | 0.01 s | details |
| #43 | ACCEPTED | 0.01 s | details |
| #44 | ACCEPTED | 0.01 s | details |
| #45 | ACCEPTED | 0.01 s | details |
| #46 | ACCEPTED | 0.01 s | details |
| #47 | ACCEPTED | 0.01 s | details |
| #48 | ACCEPTED | 0.01 s | details |
| #49 | ACCEPTED | 0.01 s | details |
| #50 | ACCEPTED | 0.03 s | details |
| #51 | ACCEPTED | 0.03 s | details |
| #52 | ACCEPTED | 0.01 s | details |
| #53 | ACCEPTED | 0.01 s | details |
| #54 | ACCEPTED | 0.03 s | details |
| #55 | ACCEPTED | 0.01 s | details |
| #56 | ACCEPTED | 0.03 s | details |
| #57 | ACCEPTED | 0.02 s | details |
| #58 | ACCEPTED | 0.02 s | details |
| #59 | ACCEPTED | 0.02 s | details |
| #60 | ACCEPTED | 0.12 s | details |
| #61 | ACCEPTED | 0.12 s | details |
| #62 | ACCEPTED | 0.03 s | details |
| #63 | ACCEPTED | 0.04 s | details |
| #64 | ACCEPTED | 0.12 s | details |
| #65 | ACCEPTED | 0.05 s | details |
| #66 | ACCEPTED | 0.12 s | details |
| #67 | ACCEPTED | 0.07 s | details |
| #68 | ACCEPTED | 0.08 s | details |
| #69 | ACCEPTED | 0.09 s | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:23:40: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
23 | #define fr(i,a,b) for (size_t i = a; i < b; i++)
| ^
input/code.cpp:57:3: note: in expansion of macro 'fr'
57 | fr(i, 0, n) {
| ^~Code
// clang-format off
#include <bits/stdc++.h>
#include <optional>
using namespace std;
#ifdef DO_DBG
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) os << sep << x, sep = ", "; return os << '}'; }
void dbg_out() { cerr << endl; }
template<typename Head, typename... Tail> void dbg_out(Head H, Tail... T) { cerr << ' ' << H; dbg_out(T...); }
#define dbg(...) cerr << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
#define dout cerr
#define debug true
#else
#define dbg(...)
#define dout if (0) cerr
#define debug false
#endif
typedef long long ll; typedef unsigned long long ull; typedef long double ld;
template <typename T> using v = vector<T>; template <typename T> using us = unordered_set<T>; template <typename K, typename V> using p = pair<K,V>;
template <typename K, typename V> using um = unordered_map<K, V>; template <typename K, typename V> using p = pair<K, V>;
template <typename T> using pq = priority_queue<T>; template <typename T> using nl = numeric_limits<T>; template <typename T> using il = initializer_list<T>;
constexpr int MOD = 1e9 + 7; constexpr int INF = 1e9; constexpr ld EPS = 1e-9;
#define fr(i,a,b) for (size_t i = a; i < b; i++)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin.exceptions(cin.failbit);
#define frr(i,a,b) for (size_t i = b-1; i >= a; i--)
#define frs(i,a,b) for (ll i = a; i < b; i++)
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define sq(x) ((x) * (x))
template <typename... Args> void read(Args&... args) { ((cin >> args), ...); }
#define d(...) int __VA_ARGS__; read(__VA_ARGS__);
#define dll(...) ll __VA_ARGS__; read(__VA_ARGS__);
#define dv(x, n) vector<int> x(n); for (int i = 0; i < n; i++) cin >> x[i];
#define dvll(x, n) vector<long long> x(n); for (int i = 0; i < n; i++) cin >> x[i];
#define dvd(x, n) vector<double> x(n); for (int i = 0; i < n; i++) cin >> x[i];
ll ipow(ll a,int b){ll r=1;for(;b;b>>=1,a*=a)if(b&1)r*=a;return r;}
template<class F>struct y_combinator{F f;template<class...Args>decltype(auto)operator()(Args&&...args)const{return f(*this,forward<Args>(args)...);}};
constexpr auto get_nums=[]<typename T>(T&&s){istringstream iss(forward<T>(s));return vector<int>{istream_iterator<int>{iss},{}};};
// clang-format on
int main() {
fastio;
d(n, m);
v<v<ll>> adj(n);
frs(i, 0, m) {
d(a, b);
a--;
b--;
adj[a].push_back(b);
adj[b].push_back(a);
}
// we find the node with the smallest sum of distances to all other nodes
// we can just calculate this for each node i guess
ll min_sum = nl<ll>::max();
ll min_node = 0;
fr(i, 0, n) {
pq<p<ll, ll>> que;
v<bool> proc(n);
v<ll> distance(n, nl<ll>::max());
que.push({0, i});
distance[i] = 0;
while (!que.empty()) {
auto a = que.top().second;
que.pop();
if (proc[a])
continue;
proc[a] = true;
for (auto u : adj[a]) {
auto w = 1;
auto b = u;
if (distance[a] + w < distance[b]) {
distance[b] = distance[a] + w;
que.push({-distance[b], b});
}
}
}
// for (auto d : distance)
// cout << d << " ";
auto sum = reduce(all(distance));
// dbg(i, sum);
if (sum < min_sum)
min_sum = sum, min_node = i;
}
cout << min_node + 1 << "\n";
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 2 1 1 2 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 3 3 1 2 1 3 2 3 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 3 3 1 2 1 3 2 3 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 3 2 1 3 2 3 |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 4 5 1 2 1 3 1 4 2 3 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 4 6 1 2 1 3 1 4 2 3 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 4 4 1 2 1 4 2 3 3 4 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 4 5 1 2 1 3 1 4 2 4 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 4 6 1 2 1 3 1 4 2 3 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 5 7 1 2 1 4 1 5 2 3 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 5 6 1 2 1 3 1 4 1 5 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 5 7 1 2 1 3 1 4 2 3 ... |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 5 7 1 2 1 3 1 4 2 3 ... |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 5 10 1 2 1 3 1 4 1 5 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 5 5 1 2 1 5 2 3 2 5 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 5 10 1 2 1 3 1 4 1 5 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 5 4 1 4 1 5 2 4 3 5 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 18
Verdict: ACCEPTED
| input |
|---|
| 5 10 1 2 1 3 1 4 1 5 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 5 4 1 3 1 5 2 4 3 4 |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 20
Verdict: ACCEPTED
| input |
|---|
| 10 29 1 4 1 6 1 7 1 9 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 21
Verdict: ACCEPTED
| input |
|---|
| 10 24 1 3 1 4 1 5 1 6 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 22
Verdict: ACCEPTED
| input |
|---|
| 10 9 1 6 2 3 2 4 3 9 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 23
Verdict: ACCEPTED
| input |
|---|
| 10 11 1 2 1 3 1 6 2 7 ... |
| correct output |
|---|
| 5 |
| user output |
|---|
| 5 |
Test 24
Verdict: ACCEPTED
| input |
|---|
| 10 44 1 2 1 3 1 4 1 5 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 25
Verdict: ACCEPTED
| input |
|---|
| 10 12 1 3 1 7 1 10 2 8 ... |
| correct output |
|---|
| 7 |
| user output |
|---|
| 7 |
Test 26
Verdict: ACCEPTED
| input |
|---|
| 10 42 1 2 1 4 1 5 1 6 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 27
Verdict: ACCEPTED
| input |
|---|
| 10 12 1 2 1 5 2 3 2 5 ... |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 28
Verdict: ACCEPTED
| input |
|---|
| 10 12 1 2 1 3 1 8 2 4 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 29
Verdict: ACCEPTED
| input |
|---|
| 10 9 1 10 2 3 2 5 3 9 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 30
Verdict: ACCEPTED
| input |
|---|
| 100 319 1 37 1 67 1 75 1 82 ... |
| correct output |
|---|
| 22 |
| user output |
|---|
| 22 |
Test 31
Verdict: ACCEPTED
| input |
|---|
| 100 266 1 31 1 65 1 71 1 89 ... |
| correct output |
|---|
| 76 |
| user output |
|---|
| 76 |
Test 32
Verdict: ACCEPTED
| input |
|---|
| 100 99 1 21 1 73 2 8 2 16 ... |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 |
Test 33
Verdict: ACCEPTED
| input |
|---|
| 100 101 1 39 1 76 2 43 2 60 ... |
| correct output |
|---|
| 39 |
| user output |
|---|
| 39 |
Test 34
Verdict: ACCEPTED
| input |
|---|
| 100 487 1 6 1 12 1 63 1 64 ... |
| correct output |
|---|
| 41 |
| user output |
|---|
| 41 |
Test 35
Verdict: ACCEPTED
| input |
|---|
| 100 102 1 12 1 39 2 4 2 92 ... |
| correct output |
|---|
| 97 |
| user output |
|---|
| 97 |
Test 36
Verdict: ACCEPTED
| input |
|---|
| 100 457 1 2 1 4 1 5 1 6 ... |
| correct output |
|---|
| 9 |
| user output |
|---|
| 9 |
Test 37
Verdict: ACCEPTED
| input |
|---|
| 100 102 1 2 1 11 1 12 1 15 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 38
Verdict: ACCEPTED
| input |
|---|
| 100 102 1 2 1 3 1 8 1 27 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 39
Verdict: ACCEPTED
| input |
|---|
| 100 103 1 66 1 92 2 20 2 23 ... |
| correct output |
|---|
| 50 |
| user output |
|---|
| 50 |
Test 40
Verdict: ACCEPTED
| input |
|---|
| 200 639 1 19 1 48 1 74 1 128 ... |
| correct output |
|---|
| 140 |
| user output |
|---|
| 140 |
Test 41
Verdict: ACCEPTED
| input |
|---|
| 200 533 1 61 1 65 1 71 1 116 ... |
| correct output |
|---|
| 28 |
| user output |
|---|
| 28 |
Test 42
Verdict: ACCEPTED
| input |
|---|
| 200 199 1 73 1 109 2 79 2 97 ... |
| correct output |
|---|
| 138 |
| user output |
|---|
| 138 |
Test 43
Verdict: ACCEPTED
| input |
|---|
| 200 201 1 76 1 107 2 43 2 60 ... |
| correct output |
|---|
| 18 |
| user output |
|---|
| 18 |
Test 44
Verdict: ACCEPTED
| input |
|---|
| 200 974 1 12 1 24 1 37 1 83 ... |
| correct output |
|---|
| 13 |
| user output |
|---|
| 13 |
Test 45
Verdict: ACCEPTED
| input |
|---|
| 200 202 1 123 1 170 2 127 2 133 ... |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 |
Test 46
Verdict: ACCEPTED
| input |
|---|
| 200 915 1 2 1 4 1 5 1 7 ... |
| correct output |
|---|
| 23 |
| user output |
|---|
| 23 |
Test 47
Verdict: ACCEPTED
| input |
|---|
| 200 202 1 2 1 11 1 12 1 15 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 48
Verdict: ACCEPTED
| input |
|---|
| 200 202 1 2 1 3 1 8 1 27 ... |
| correct output |
|---|
| 5 |
| user output |
|---|
| 5 |
Test 49
Verdict: ACCEPTED
| input |
|---|
| 200 207 1 92 1 156 2 33 2 103 ... |
| correct output |
|---|
| 28 |
| user output |
|---|
| 28 |
Test 50
Verdict: ACCEPTED
| input |
|---|
| 500 1597 1 16 1 19 1 73 1 190 ... |
| correct output |
|---|
| 364 |
| user output |
|---|
| 364 |
Test 51
Verdict: ACCEPTED
| input |
|---|
| 500 1333 1 71 1 76 1 197 1 289 ... |
| correct output |
|---|
| 492 |
| user output |
|---|
| 492 |
Test 52
Verdict: ACCEPTED
| input |
|---|
| 500 499 1 128 1 491 2 280 2 344 ... |
| correct output |
|---|
| 76 |
| user output |
|---|
| 76 |
Test 53
Verdict: ACCEPTED
| input |
|---|
| 500 501 1 170 1 405 2 43 2 234 ... |
| correct output |
|---|
| 246 |
| user output |
|---|
| 246 |
Test 54
Verdict: ACCEPTED
| input |
|---|
| 500 2434 1 49 1 60 1 80 1 83 ... |
| correct output |
|---|
| 32 |
| user output |
|---|
| 32 |
Test 55
Verdict: ACCEPTED
| input |
|---|
| 500 502 1 208 1 407 2 266 2 336 ... |
| correct output |
|---|
| 111 |
| user output |
|---|
| 111 |
Test 56
Verdict: ACCEPTED
| input |
|---|
| 500 2286 1 2 1 4 1 5 1 7 ... |
| correct output |
|---|
| 204 |
| user output |
|---|
| 204 |
Test 57
Verdict: ACCEPTED
| input |
|---|
| 500 502 1 2 1 11 1 12 1 15 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 58
Verdict: ACCEPTED
| input |
|---|
| 500 502 1 2 1 3 1 8 1 27 ... |
| correct output |
|---|
| 79 |
| user output |
|---|
| 79 |
Test 59
Verdict: ACCEPTED
| input |
|---|
| 500 519 1 92 1 333 2 10 2 170 ... |
| correct output |
|---|
| 170 |
| user output |
|---|
| 170 |
Test 60
Verdict: ACCEPTED
| input |
|---|
| 1000 3195 1 31 1 145 1 218 1 320 ... |
| correct output |
|---|
| 774 |
| user output |
|---|
| 774 |
Test 61
Verdict: ACCEPTED
| input |
|---|
| 1000 2667 1 24 1 61 1 142 1 303 ... |
| correct output |
|---|
| 648 |
| user output |
|---|
| 648 |
Test 62
Verdict: ACCEPTED
| input |
|---|
| 1000 999 1 99 1 165 2 280 2 344 ... |
| correct output |
|---|
| 611 |
| user output |
|---|
| 611 |
Test 63
Verdict: ACCEPTED
| input |
|---|
| 1000 1001 1 170 1 763 2 329 2 908 ... |
| correct output |
|---|
| 736 |
| user output |
|---|
| 736 |
Test 64
Verdict: ACCEPTED
| input |
|---|
| 1000 4869 1 98 1 209 1 419 1 602 ... |
| correct output |
|---|
| 939 |
| user output |
|---|
| 939 |
Test 65
Verdict: ACCEPTED
| input |
|---|
| 1000 1002 1 208 1 407 2 336 2 544 ... |
| correct output |
|---|
| 576 |
| user output |
|---|
| 576 |
Test 66
Verdict: ACCEPTED
| input |
|---|
| 1000 4572 1 2 1 4 1 5 1 7 ... |
| correct output |
|---|
| 592 |
| user output |
|---|
| 592 |
Test 67
Verdict: ACCEPTED
| input |
|---|
| 1000 1002 1 2 1 11 1 12 1 15 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 68
Verdict: ACCEPTED
| input |
|---|
| 1000 1002 1 2 1 3 1 8 1 27 ... |
| correct output |
|---|
| 512 |
| user output |
|---|
| 512 |
Test 69
Verdict: ACCEPTED
| input |
|---|
| 1000 1040 1 333 1 989 2 507 2 998 ... |
| correct output |
|---|
| 73 |
| user output |
|---|
| 73 |
