Submission #1309970

#TimeUsernameProblemLanguageResultExecution timeMemory
1309970quollcucumber`Netrpeljivost (COI23_netrpeljivost)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int parent[2048]; int dsu(int node) { if(parent[node] == node) return node; return parent[node] = dsu(parent[node]); } signed main(){ for(int i = 0; i < 2048; i++) parent[i]= i; int n; cin >> n; int anti[n][n]; vector<pair<int, pair<int, int>>> edges; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cin >> anti[i][j]; edges.push_back({anti[i][j], {i, j}}); } } sort(edges.begin(), edges.end()); int total = 0; int numedges[n]; for(int i = 0; i < n ; i++) numedges[i] = 0; for(int i = 0; i < n * n; i++) { if(numedges[edges[i].second.first] < 2 && numedges[edges[i].second.second] < 2 && dsu(edges[i].second.first) != dsu(edges[i].second.second)) { total += edges[i].first; parent[dsu(edges[i].second.first)] = dsu(edges[i].second.second); numedges[edges[i].second.first]++; numedges[edges[i].second.second]++; } } cout<<total<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...