Submission #1102248

#TimeUsernameProblemLanguageResultExecution timeMemory
1102248alexddGraph (BOI20_graph)C++17
58 / 100
563 ms19728 KiB
#include <bits/stdc++.h> using namespace std; const int INF = 1e9; int n,m; double val[100005]; int u[200005],v[200005],s[200005]; vector<pair<int,int>> con[100005]; bool visited[100005]; bool bun; double cur; vector<int> aux; void dfs(int nod) { cur += abs(val[nod]); aux.push_back(nod); visited[nod]=1; for(auto [adj,sum]:con[nod]) { if(!visited[adj]) { val[adj] = sum - val[nod]; dfs(adj); } else if(val[adj] != sum - val[nod]) bun = 0; } } vector<double> possible; int main() { ios_base::sync_with_stdio(0);cin.tie(0); for(double i = -35;i<=35;i+=0.5) possible.push_back(i); cin>>n>>m; for(int i=1;i<=m;i++) { cin>>u[i]>>v[i]>>s[i]; con[u[i]].push_back({v[i],s[i]}); con[v[i]].push_back({u[i],s[i]}); } for(int i=1;i<=n;i++) { visited[i]=0; } double sum=0; for(int i=1;i<=n;i++) { if(!visited[i]) { double mnm=INF,unde; for(double x:possible) { val[i] = x; bun=1; aux.clear(); cur=0; dfs(i); if(bun && cur<mnm) { mnm = cur; unde = x; } for(int y:aux) visited[y]=0; } if(mnm==INF) { cout<<"NO"; return 0; } val[i] = unde; dfs(i); sum += mnm; } } cout<<"YES\n"; for(int i=1;i<=n;i++) cout<<val[i]<<" "; return 0; }

Compilation message (stderr)

Graph.cpp: In function 'int main()':
Graph.cpp:72:20: warning: 'unde' may be used uninitialized in this function [-Wmaybe-uninitialized]
   72 |             val[i] = unde;
      |             ~~~~~~~^~~~~~
#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...