Submission #97358

# Submission time Handle Problem Language Result Execution time Memory
97358 2019-02-15T12:55:13 Z TuGSGeReL Race (IOI11_race) C++14
9 / 100
3000 ms 14104 KB
#include "race.h"
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ll long long
#define mp make_pair
#define pub push_back
#define pob pop_back()
#define ss second
#define ff first
#define mt make_tuple
#define pof pop_front()
#define fbo find_by_order
#define ook order_of_key
typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;
ll i,ans=1e9,c[200001],used[200001];
vector<pair<ll,ll> >v[200001];
map<ll,ll>xox,yoy;
void dfs(ll u, ll par){
	for(auto x : v[u]) if(x.ff!=par) dfs(x.ff,u); 
	c[par]+=c[u];
}
void dfs1(ll u, ll parr, ll s, ll d){
	if(yoy.find(s) == yoy.end())yoy[s]=d;
	else yoy[s]=min(yoy[s],d);
	for(auto x : v[u]){
		if(x.ff!=parr){
			s+=x.ss;
			d++;
			dfs1(x.ff,u,s,d);
		}
	}
}
ll fnd(ll u , ll sz){
	for(auto x : v[u]){
		if(!used[x.ff] && c[x.ff]>sz){
			c[u]-=c[x.ff];
			c[x.ff]+=c[u];
			return fnd(x.ff,sz);
		}
	}
	return u;
}
void solve(ll at, ll k){
	at=fnd(at,c[at]/2);
	used[at]=1;
	xox.clear();
	xox[0]=0;
	for(auto z : v[at]){
		if(used[z.ff]) continue;
		yoy.clear();
		dfs1(z.ff,at,z.ss,1);
		for(auto haha : yoy) if(xox.find(k-haha.ff)!=xox.end()) ans=min(ans,haha.ss+xox[k-haha.ff]);
		for(auto lol : yoy){
			if(xox.find(lol.ff)==xox.end()) xox[lol.ff]=lol.ss;
			else xox[lol.ff]=min(xox[lol.ff],lol.ss);
		}
	}
	for(auto hha : v[at]) if(!used[hha.ff]) solve(hha.ff,k);
}
int best_path(int N, int K, int H[][2], int L[]) {
	for(i=0;i<N-1;i++){
		c[i]=1;
		v[H[i][0]].pub(mp(H[i][1],L[i]));
		v[H[i][1]].pub(mp(H[i][0],L[i]));
	}
	c[N-1]=1;
	dfs(0,0);
	solve(0,K);
	if(ans==1e9) ans=-1;
	return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4992 KB Output is correct
2 Correct 9 ms 5040 KB Output is correct
3 Correct 8 ms 5120 KB Output is correct
4 Correct 6 ms 5104 KB Output is correct
5 Correct 9 ms 4992 KB Output is correct
6 Correct 7 ms 5120 KB Output is correct
7 Correct 4 ms 4992 KB Output is correct
8 Correct 9 ms 5120 KB Output is correct
9 Correct 8 ms 5120 KB Output is correct
10 Correct 9 ms 4992 KB Output is correct
11 Correct 8 ms 5116 KB Output is correct
12 Correct 10 ms 5120 KB Output is correct
13 Correct 8 ms 5120 KB Output is correct
14 Correct 9 ms 5120 KB Output is correct
15 Correct 11 ms 5120 KB Output is correct
16 Correct 8 ms 4992 KB Output is correct
17 Correct 8 ms 5120 KB Output is correct
18 Correct 9 ms 5120 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4992 KB Output is correct
2 Correct 9 ms 5040 KB Output is correct
3 Correct 8 ms 5120 KB Output is correct
4 Correct 6 ms 5104 KB Output is correct
5 Correct 9 ms 4992 KB Output is correct
6 Correct 7 ms 5120 KB Output is correct
7 Correct 4 ms 4992 KB Output is correct
8 Correct 9 ms 5120 KB Output is correct
9 Correct 8 ms 5120 KB Output is correct
10 Correct 9 ms 4992 KB Output is correct
11 Correct 8 ms 5116 KB Output is correct
12 Correct 10 ms 5120 KB Output is correct
13 Correct 8 ms 5120 KB Output is correct
14 Correct 9 ms 5120 KB Output is correct
15 Correct 11 ms 5120 KB Output is correct
16 Correct 8 ms 4992 KB Output is correct
17 Correct 8 ms 5120 KB Output is correct
18 Correct 9 ms 5120 KB Output is correct
19 Correct 0 ms 4992 KB Output is correct
20 Correct 8 ms 5120 KB Output is correct
21 Incorrect 54 ms 5148 KB Output isn't correct
22 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4992 KB Output is correct
2 Correct 9 ms 5040 KB Output is correct
3 Correct 8 ms 5120 KB Output is correct
4 Correct 6 ms 5104 KB Output is correct
5 Correct 9 ms 4992 KB Output is correct
6 Correct 7 ms 5120 KB Output is correct
7 Correct 4 ms 4992 KB Output is correct
8 Correct 9 ms 5120 KB Output is correct
9 Correct 8 ms 5120 KB Output is correct
10 Correct 9 ms 4992 KB Output is correct
11 Correct 8 ms 5116 KB Output is correct
12 Correct 10 ms 5120 KB Output is correct
13 Correct 8 ms 5120 KB Output is correct
14 Correct 9 ms 5120 KB Output is correct
15 Correct 11 ms 5120 KB Output is correct
16 Correct 8 ms 4992 KB Output is correct
17 Correct 8 ms 5120 KB Output is correct
18 Correct 9 ms 5120 KB Output is correct
19 Execution timed out 3073 ms 14104 KB Time limit exceeded
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4992 KB Output is correct
2 Correct 9 ms 5040 KB Output is correct
3 Correct 8 ms 5120 KB Output is correct
4 Correct 6 ms 5104 KB Output is correct
5 Correct 9 ms 4992 KB Output is correct
6 Correct 7 ms 5120 KB Output is correct
7 Correct 4 ms 4992 KB Output is correct
8 Correct 9 ms 5120 KB Output is correct
9 Correct 8 ms 5120 KB Output is correct
10 Correct 9 ms 4992 KB Output is correct
11 Correct 8 ms 5116 KB Output is correct
12 Correct 10 ms 5120 KB Output is correct
13 Correct 8 ms 5120 KB Output is correct
14 Correct 9 ms 5120 KB Output is correct
15 Correct 11 ms 5120 KB Output is correct
16 Correct 8 ms 4992 KB Output is correct
17 Correct 8 ms 5120 KB Output is correct
18 Correct 9 ms 5120 KB Output is correct
19 Correct 0 ms 4992 KB Output is correct
20 Correct 8 ms 5120 KB Output is correct
21 Incorrect 54 ms 5148 KB Output isn't correct
22 Halted 0 ms 0 KB -