Submission #1153690

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
11536902025-02-20 01:48:46gustavo_dGame (IOI14_game)C++20
100 / 100
254 ms15952 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
struct DSU {
int n; vector<int> pai, sz;
vector<vector<int>> attempts;
DSU(int _n=0): n(_n), pai(_n), sz(_n, 1),
attempts(_n, vector<int> (_n, 0)) {
for (int i=0; i<n; i++) pai[i] = i;
}
bool merge(int a, int b) {
a = find(a), b = find(b);
if (a == b) return false;
attempts[a][b]++;
attempts[b][a]++;
if (attempts[a][b] < sz[a] * sz[b]) return false;
for (int i=0; i<n; i++) {
attempts[b][i] += attempts[a][i];
attempts[i][b] += attempts[i][a];
}
for (int i=0; i<n; i++) {
if (pai[i] == a) pai[i] = b;
}
sz[b] += sz[a];
return true;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...