답안 #1042612

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1042612 2024-08-03T08:30:43 Z Abito Sirni (COCI17_sirni) C++17
28 / 140
4204 ms 786432 KB
#include <bits/stdc++.h>
#define F first
#define S second
#define pb push_back
#define ppb pop_back
#define ep insert
#define endl '\n'
#define elif else if
#define pow pwr
#define sqrt sqrtt
//#define int long long
#define ll long long
#define y1 YONE
typedef unsigned long long ull;
using namespace std;
const int N=1e7+5;
int a[N],n,par[N],sz[N];
int getpar(int x){
    if (x==par[x]) return x;
    return par[x]=getpar(par[x]);
}
void link(int x,int y){
    x=getpar(x);
    y=getpar(y);
    if (x==y) return;
    if (sz[x]>sz[y]) swap(x,y);
    sz[y]+=sz[x];
    par[x]=y;
    return;
}
int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    cin>>n;
    for (int i=1;i<=n;i++) cin>>a[i],par[i]=i,sz[i]=1;
    sort(a+1,a+1+n);
    vector<vector<int>> v;
    for (int i=1;i<n;i++){
        v.pb({a[i+1]%a[i],i,i+1});
        for (int j=a[i]*2;j<N;j+=i){
            int l=1,r=n,mid,idx=-1;
            while (l<=r){
                mid=(l+r)/2;
                if (a[mid]>=j){
                    idx=mid;
                    r=mid-1;
                }else l=mid+1;
            }
            if (idx==-1) break;
            if (a[idx]>=j+i) continue;
            v.pb({a[idx]%a[i],i,idx});
        }
    }ll ans=0;
    sort(v.begin(),v.end());
    for (auto u:v){
        int x=getpar(u[1]),y=getpar(u[2]);
        if (x==y) continue;
        ans+=(ll)u[0];
        link(x,y);
    }cout<<ans<<endl;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 428 ms 16628 KB Output is correct
2 Correct 565 ms 26220 KB Output is correct
3 Correct 461 ms 26356 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 6928 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 439 ms 17860 KB Output is correct
2 Correct 197 ms 5260 KB Output is correct
3 Correct 481 ms 18676 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3750 ms 456108 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1437 ms 236260 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4204 ms 665360 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 579 ms 94416 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1835 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2004 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1927 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -