Submission #1090410

#TimeUsernameProblemLanguageResultExecution timeMemory
1090410jamkelStranded Far From Home (BOI22_island)C++14
0 / 100
104 ms23968 KiB
#include<bits/stdc++.h> using namespace std; #define all(x) x.begin(),x.end() #define st first #define nd second typedef long long ll; ll f(vector<ll>&u,ll i) { if(u[i]==i) { return i; } u[i]=f(u,u[i]); return u[i]; } void f2(vector<ll>&u,vector<ll>&w,ll i) { if(u[i]==i) { w[i]=2; return; } if(w[i]>0) { return; } f2(u,w,u[i]); w[i]=w[u[i]]; } int main() { ios_base::sync_with_stdio(false);cin.tie(0); ll n,m; cin>>n>>m; vector<int>a(n); vector<pair<int,int>>c(n); vector<vector<ll>>b(n); for(int i=0;i<n;i++) { cin>>c[i].st; c[i].nd=i; a[i]=c[i].st; } sort(all(c)); for(int i=0;i<m;i++) { ll x,y; cin>>x>>y; b[x-1].push_back(y-1); b[y-1].push_back(x-1); } vector<ll>u1(n); vector<ll>u2(n); vector<bool>wyn(n,false); for(int i=0;i<n;i++) { u1[i]=i; u2[i]=i; } for(int q=0;q<n;q++) { ll i=c[q].nd; ll wag=0; for(int j=0;j<b[i].size();j++) { if(a[b[i][j]]<a[i] or (a[b[i][j]]==a[i] && i>b[i][j])) { if(a[f(u1,b[i][j])]<a[i]) { wyn[f(u1,b[i][j])]=true; } wag+=a[u1[b[i][j]]]; u2[u1[b[i][j]]]=i; u1[u1[b[i][j]]]=i; } } a[i]+=wag; } vector<ll>ww(n); for(int i=0;i<n;i++) { ww[i]=wyn[i]; } for(int i=0;i<n;i++) { if(ww[i]==0) { f2(u2,ww,i); } cout<<ww[i]-1; } cout<<endl; }

Compilation message (stderr)

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