Submission #671330

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
6713302022-12-12 20:59:13birthdaycakeRace (IOI11_race)C++17
100 / 100
483 ms110712 KiB
#include "race.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<pair<int,int>>adj[200001];
int dsu[200001],sz[200001];
int inbut[200001][2], ll[200001];
map<int,int> store[200001];
int vs[200001],sum[200001];
int ans = INT_MAX, K;
int Find(int x){
if(dsu[x] == x) return x;
else return dsu[x] = Find(dsu[x]);
}
void Unite(int a, int b, int cur_k, int cur_depth){
a = Find(a); b = Find(b);
if(sz[a] > sz[b]) swap(a,b);
sz[b] += sz[a];
dsu[a] = b;
for(auto s: store[a]){
if(store[b].count(cur_k - s.first) != 0){
ans = min(ans, s.second - cur_depth + store[b][cur_k - s.first] - cur_depth);
}
}
for(auto s: store[a]){
if(store[b].count(s.first) == 0 or store[b][s.first] > s.second){
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...