Submission #889455

#TimeUsernameProblemLanguageResultExecution timeMemory
889455codefoxSirni (COCI17_sirni)C++14
0 / 140
2729 ms83168 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define pii pair<int, int>

int main()
{
    int n;
    cin >> n;
    vector<int> nums(n);
    set<int> mult;
    set<int> num;
    map<int, bool> v;
    map<int, int> mini;
    for(int i = 0; i < n; i++)
    {
        cin >> nums[i];
        if (v[nums[i]]) continue;
        num.insert(nums[i]);
        mini[nums[i]]=1e9;
        v[nums[i]]=true;
    }
    sort(nums.begin(), nums.end());
    ll sol = 0;
    mini[nums[0]] = 0;

    for (int ele:nums)
    {
        int mn = mini[ele];
        num.erase(ele);
        if (num.empty())
        {
            cout << sol+mn;
            break;
        }
        for (int j = ele; j <= *(--num.end()); j+=ele)
        {
            auto u = num.lower_bound(j);
            if (u != num.end())
            {
                int iu = *u;
                mini[iu]=min(mini[iu], iu-j);
                mn = min(mn, iu-j);
            }
            mult.insert(j);
        }
        sol += mn;
    }

    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...
#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...