# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
233539 |
2020-05-20T20:47:31 Z |
ant101 |
Traffic (IOI10_traffic) |
C++14 |
|
17 ms |
23808 KB |
#include <iostream>
#include <algorithm>
#include <cstring>
#include <iomanip>
#include <fstream>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <map>
#include <stack>
#include <queue>
#include <assert.h>
#include <limits>
#include <cstdio>
using namespace std;
//#define RDEBUG 1
#ifdef RDEBUG
#define D(x) x
#else
#define D(x)
#endif
#define inf 0x7fffffff
#define MOD 1000000007
typedef long long ll;
ll add(ll a, ll b) {
a += b;
if(a >= MOD) {
a -= MOD;
}
return a;
}
ll sub(ll a, ll b) {
a -= b;
if(a < 0) {
a += MOD;
}
return a;
}
ll mul(ll a, ll b) {
return (a * b)%MOD;
}
void add_self(ll& a, ll b) {
a = add(a, b);
}
void sub_self(ll& a, ll b) {
a = sub(a, b);
}
void mul_self(ll& a, ll b) {
a = mul(a, b);
}
const ll MAXN = 1000000;
static int N,P[1000000],S[1000000],D[1000000];
vector<ll> adj[MAXN];
ll sz[MAXN];
pair<ll, ll> best = {1e13, -1};
int LocateCentre(int N, int pp[], int S[], int D[]);
ll dfs(ll u, ll p) {
sz[u] = P[u];
for (auto v : adj[u]) {
if (v != p) {
sz[u]+=dfs(v, u);
}
}
return sz[u];
}
void dfs2(ll u, ll p) {
ll hc = -1;
for (auto v : adj[u]) {
hc = max(hc, sz[v]);
}
best = min(best, {hc, u});
for (auto v : adj[u]) {
if (v != p) {
ll o1 = sz[u], o2 = sz[v];
sz[u]-=sz[v];
sz[v] = o1;
dfs2(v, u);
sz[u] = o1;
sz[v] = o2;
}
}
}
int LocateCentre(int N, int pp[], int S[], int D[]) {
memcpy(P, pp, sizeof(*pp));
for (ll i = 0; i<N-1; i++) {
adj[S[i]].push_back(D[i]);
adj[D[i]].push_back(S[i]);
}
dfs(0, -1);
dfs2(0, -1);
return 3;
}
Compilation message
traffic.cpp:63:36: warning: 'D' defined but not used [-Wunused-variable]
static int N,P[1000000],S[1000000],D[1000000];
^
traffic.cpp:63:25: warning: 'S' defined but not used [-Wunused-variable]
static int N,P[1000000],S[1000000],D[1000000];
^
traffic.cpp:63:12: warning: 'N' defined but not used [-Wunused-variable]
static int N,P[1000000],S[1000000],D[1000000];
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
17 ms |
23808 KB |
Output is correct |
2 |
Incorrect |
17 ms |
23808 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
17 ms |
23808 KB |
Output is correct |
2 |
Incorrect |
17 ms |
23808 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
17 ms |
23808 KB |
Output is correct |
2 |
Incorrect |
17 ms |
23808 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
17 ms |
23808 KB |
Output is correct |
2 |
Incorrect |
17 ms |
23808 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |