Submission #114293

#TimeUsernameProblemLanguageResultExecution timeMemory
114293MohamedAhmed04Ceste (COCI17_ceste)C++14
16 / 160
2560 ms512 KiB
#include <bits/stdc++.h> using namespace std; const int MAX = 2010 ; struct edge { int to , time , cost ; edge(int ve , int ti , int co) { to = ve ; time = ti ; cost = co ; } }; vector< vector<edge> >adj(MAX) ; int vis[MAX] ; int n , m ; long long ans[MAX] ; void dfs(int node , int sumt , int sumc) { //trying a thing. long long now = (sumt * 1ll) * (sumc * 1ll) ; if(now > ans[node] * 4ll) return ; ans[node] = min(ans[node] , now) ; for(auto &child : adj[node]) { if(vis[child.to] == 1) continue ; vis[child.to] = 1 ; dfs(child.to , sumt + child.time , sumc + child.cost) ; vis[child.to] = 0 ; } return ; } int readint() { bool minus = false; int result = 0; char ch; ch = getchar(); while (true) { if (ch == '-') break; if (ch >= '0' && ch <= '9') break; ch = getchar(); } if (ch == '-') minus = true; else result = ch-'0'; while (true) { ch = getchar(); if (ch < '0' || ch > '9') break; result = result*10 + (ch - '0'); } if (minus) return -result; else return result; } int main() { n = readint() ; m = readint() ; int a , b , c , d ; for(int i = 0 ; i < m ; ++i) { a = readint() ; b = readint() ; c = readint() ; d = readint() ; adj[a].push_back(edge(b , c , d)) ; adj[b].push_back(edge(a , c , d)) ; } long long cons = 1e17 ; for(int i = 1 ; i <= n ; ++i) ans[i] = cons ; dfs(1 , 0 , 0) ; for(int i = 2 ; i <= n ; ++i) { if(ans[i] == cons) ans[i] = -1 ; printf("%lld\n" , ans[i]); } return 0 ; }
#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...