제출 #1148131

#제출 시각아이디문제언어결과실행 시간메모리
1148131josephtenorio게임 (IOI14_game)C++20
100 / 100
219 ms15960 KiB
#include <bits/stdc++.h> using namespace std; queue<int> lid; vector<vector<int>> adj; vector<int> dsu; int padre(int n) { if (dsu[n] == n) return n; return dsu[n] = padre(dsu[n]); } bool hasEdge(int a, int b) { int la = padre(a); int lb = padre(b); if (adj[la][lb] == 1) { dsu[la] = lb; int l = lid.size(); for (int t1 = 0; t1 < l; t1 ++) { int li = lid.front(); lid.pop(); if (li == la) continue ; if (li == lb) { lid.push(li); continue; } adj[lb][li] += adj[la][li]; adj[li][lb] += adj[li][la]; lid.push(li); } //for (auto a: adj) { // for (auto b:a) { // cout << b << " "; // } // cout << endl; //} //cout << endl; return true; } else { adj[la][lb] --; adj[lb][la] --; //for (auto a: adj) { // for (auto b:a) { // cout << b << " "; // } // cout << endl; //} //cout << endl; return false; } } void initialize(int n) { dsu.resize(n); adj.resize(n, vector<int>(n, 1)); for (int t1 = 0; t1 < n; t1 ++) { adj[t1][t1] = 0; lid.push(t1); dsu[t1] = t1; } //for (auto a: adj) { // for (auto b:a) { // cout << b << " "; // } // cout << endl; //} //cout << endl; return ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...