Submission #1070068

#TimeUsernameProblemLanguageResultExecution timeMemory
1070068PlurmSirni (COCI17_sirni)C++11
140 / 140
505 ms42508 KiB
#include <bits/stdc++.h> using namespace std; bitset<10000005> bs; int par[100005]; int bck[10000005]; int fn(int x) { if (par[x] == -1) return x; else return par[x] = fn(par[x]); } bool un(int x, int y) { x = fn(x); y = fn(y); if (x == y) return false; par[x] = y; return true; } int main() { memset(par, -1, sizeof(par)); ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<int> v; for (int i = 0; i < n; i++) { int x; cin >> x; bs[x] = true; v.push_back(x); } sort(v.begin(), v.end()); v.resize(unique(v.begin(), v.end()) - v.begin()); for (int i = 0; i < v.size(); i++) bck[v[i]] = i; long long ans = 0ll; int join = 0; for (int k = 0; k <= 10000000; k++) { for (int i = 0; i < v.size(); i++) { if (!bs[v[i]]) continue; for (int j = v[i] + k; j <= 10000000; j += v[i]) { if (bs[j] && un(bck[j], i)) { ans += k; join++; } } } if (join + 1 == v.size()) break; } cout << ans << endl; return 0; }

Compilation message (stderr)

sirni.cpp: In function 'int main()':
sirni.cpp:36:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     for (int i = 0; i < v.size(); i++)
      |                     ~~^~~~~~~~~~
sirni.cpp:41:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |         for (int i = 0; i < v.size(); i++) {
      |                         ~~^~~~~~~~~~
sirni.cpp:51:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |         if (join + 1 == v.size())
      |             ~~~~~~~~~^~~~~~~~~~~
#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...