Submission #1154498

#TimeUsernameProblemLanguageResultExecution timeMemory
1154498giaminh2211Sirni (COCI17_sirni)C++20
0 / 140
180 ms2020 KiB
#include <bits/stdc++.h> using namespace std; using ll=long long; struct node{ int ch0, ch1; }; const int N=1e6+13; ll res=0; int n; ll a[N]; ll ans[N]; ll mx; void scan(){ cin >> n; for(int i=1; i<=n; i++){ cin >> a[i]; } sort(a+1, a+n+1); n=unique(a+1, a+n+1)-a-1; mx=a[n]; //for(int i=1; i<=n; i++){ // cout << a[i] << '\n'; //} } void solve(){ fill(ans+2, ans+n+1, 1e18); for(int i=1; i<n; i++){ for(int j=a[i]; j<=mx; j+=a[i]){ int p=lower_bound(a+1, a+n+1, j)-a; if(j==a[i]) p=lower_bound(a+1, a+n+1, j+1)-a; if(1<=p && p<=n){ //cerr << i << ' ' << j << ' ' << p << ' ' << a[p]-j << '\n'; ans[p]=min(ans[p], a[p]-j); ans[i]=min(ans[i], a[p]-j); } } } for(int i=2; i<=n; i++){ res+=ans[i]; //cerr << ans[i] << '\n'; } cout << res; } int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); scan(); solve(); }
#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...