Submission #1014506

#TimeUsernameProblemLanguageResultExecution timeMemory
1014506Khanhcsp2Autići (COCI22_autici)C++14
0 / 50
0 ms348 KiB
#include<bits/stdc++.h> #define el '\n' #define fi first #define sc second #define int ll #define pii pair<int, int> #define all(v) v.begin(), v.end() using namespace std; using ll=long long; using ull=unsigned long long; using ld=long double; const int mod=1e9+7; const int N=1e5+11; int n, a[N], pa[N]; pii b[N]; struct gg { int u, v, w; }; vector<gg> e; int lead(int u) { if(pa[u]==u) return u; return pa[u]=lead(pa[u]); } bool cmp(gg x, gg y) { return x.w < y.w; } void sol() { cin >> n; for(int i=1;i<=n;i++) cin >> a[i], pa[i]=i, b[i].fi=a[i], b[i].sc=i; sort(b+1, b+n+1); for(int i=1;i<=n;i++) { if(b[1].sc!=i) e.push_back({i, b[1].sc, a[i]+b[1].fi}); else e.push_back({i, b[2].sc, a[i]+b[2].fi}); } sort(all(e), cmp); int ans=0; for(auto x:e) { int u=lead(x.u), v=lead(x.v); if(u!=v) { pa[u]=v; ans+=x.w; } } cout << ans; } signed main() { // freopen("divisor.INP", "r", stdin); // freopen("divisor.OUT", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); int t=1; //cin >> t; while(t--) { sol(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...