# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
862658 | Irate | Sirni (COCI17_sirni) | C++14 | 44 ms | 8652 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
const int mxN = 1e3 + 3;
int a[mxN];
struct Edge{
int u, v, w;
bool operator<(Edge &other){
return w < other.w;
}
};
struct DSU{
vector<int>par;
DSU(int n){
par.assign(n + 1, -1);
}
int FindRep(int u){
if(par[u] < 0)return u;
return par[u] = FindRep(par[u]);
}
bool Union(int u, int v){
u = FindRep(u);
v = FindRep(v);
if(u == v)return false;
if(par[u] > par[v])swap(u, v);
par[u] += par[v];
par[v] = u;
return true;
}
};
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for(int i = 1;i <= n;++i){
cin >> a[i];
}
vector<Edge>edge_list;
for(int i = 1;i <= n;++i){
for(int j = i + 1;j <= n;++j){
Edge temp;
temp.u = i;
temp.v = j;
temp.w = max(a[i], a[j]) % min(a[i], a[j]);
edge_list.push_back(temp);
}
}
sort(edge_list.begin(), edge_list.end());
DSU dsu(n);
long long res = 0;
for(int i = 0;i < edge_list.size();++i){
if(dsu.Union(edge_list[i].u, edge_list[i].v))res += edge_list[i].w;
}
cout << res;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |