제출 #972760

#제출 시각아이디문제언어결과실행 시간메모리
97276012345678Sirni (COCI17_sirni)C++17
42 / 140
61 ms8140 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=1e3+5;

int n, a[nx], res, cnt, dsu[nx];
vector<tuple<int, int, int>> ed;

int find(int x)
{
    if (dsu[x]==x) return x;
    return dsu[x]=find(dsu[x]);
}

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n;
    cnt=n;
    for (int i=1; i<=n; i++) cin>>a[i], dsu[i]=i;
    for (int i=1; i<=n; i++) for (int j=i+1; j<=n; j++) ed.push_back({min(a[i]%a[j], a[j]%a[i]), i, j});
    sort(ed.begin(), ed.end());
    for (auto [w, u, v]:ed)
    {
        if (find(u)!=find(v)) res+=w, dsu[find(u)]=find(v), cnt--;
        if (cnt==1) break;
    } 
    cout<<res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...