Submission #889437

#TimeUsernameProblemLanguageResultExecution timeMemory
889437codefoxSirni (COCI17_sirni)C++14
0 / 140
1512 ms85124 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<pii> num; for(int i = 0; i < n; i++) { cin >> nums[i]; num.insert({nums[i], i}); } sort(nums.begin(), nums.end()); set<int> mult; for (int j = nums[0]; j <=1e7; j+=nums[0]) { mult.insert(j); } ll sol = 0; priority_queue<pii, vector<pii>, greater<pii>> pq; pq.push({0,0}); for(int i = 1; i < n; i++) pq.push({nums[i], i}); vector<bool> vis(n, 0); while (pq.size()) { int i, d; tie(d, i) = pq.top(); pq.pop(); if (vis[i]) continue; vis[i] = true; num.erase({nums[i], i}); for (int j = nums[i]; j <=1e7; j+=nums[i]) { auto u = num.lower_bound({j, 0}); if (u != num.end()) pq.push({(*u).first-j, (*u).second}); } sol+=d; } cout << sol; 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...