제출 #715172

#제출 시각아이디문제언어결과실행 시간메모리
715172aykhnSirni (COCI17_sirni)C++14
42 / 140
888 ms786432 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define OPT ios_base::sync_with_stdio(0); \ cin.tie(0); \ cout.tie(0) #define pii pair<int,int> #define pll pair<ll,ll> #define endl "\n" #define all(v) v.begin(), v.end() #define mpr make_pair #define pb push_back #define ts to_string #define fi first #define se second #define inf 0x3F3F3F3F #define bpc __builtin_popcount #define print(v) for(int i = 0; i < v.size(); i++) \ cout << v[i] << " "; \ cout<<endl; struct DSU { vector<int> e; void init(int n) { e.assign(n, -1); } int get(int x) { if (e[x] < 0) return x; return get(e[x]); } bool together(int a, int b) { if (get(a) == get(b)) return true; return false; } int s(int x) { return -e[get(x)]; } bool un(int x, int y) { x = get(x); y = get(y); if (x == y) return false; if (e[x] > e[y]) swap(x, y); e[x] += e[y]; e[y] = x; return true; } }; int n; int main() { cin >> n; vector<int> v(n, 0); vector<pair<int, pii>> edges; for (int i = 0; i < n; i++) { cin >> v[i]; if (v[i] == 1) { cout << 0 << endl; return 0; } } sort(all(v)); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { edges.pb(mpr(min(v[i] % v[j], v[j] % v[i]), mpr(i, j))); } } sort(all(edges)); DSU dsu; dsu.init(n); ll ans = 0; for (int i = 0; i < edges.size(); i++) { if (dsu.together(edges[i].se.fi, edges[i].se.se)) continue; ans = ans + edges[i].fi; dsu.un(edges[i].se.fi, edges[i].se.se); } cout << ans << endl; }

컴파일 시 표준 에러 (stderr) 메시지

sirni.cpp: In function 'int main()':
sirni.cpp:105:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  105 |     for (int i = 0; i < edges.size(); i++)
      |                     ~~^~~~~~~~~~~~~~
#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...