Submission #1077160

#TimeUsernameProblemLanguageResultExecution timeMemory
1077160pawnedPetrol stations (CEOI24_stations)C++17
8 / 100
24 ms6876 KiB
#pragma GCC optimize("O1,O2,O3,Ofast,unroll-loops") #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back typedef long long ll; typedef pair<int, int> ii; typedef vector<int> vi; const char nl = '\n'; void fastIO() { ios::sync_with_stdio(false); cin.tie(0); } const int MAX = 70005; ll N, K; vector<ii> adj[MAX]; int main() { fastIO(); cin>>N>>K; for (int i = 0; i < N - 1; i++) { int u, v, w; // w <= 1e9, can be int cin>>u>>v>>w; adj[u].pb({v, w}); adj[v].pb({u, w}); } int start = -1; for (int i = 0; i < N; i++) { if (adj[i].size() == 1) start = i; } vi order; vector<bool> vis(N, false); queue<int> q; q.push(start); vis[start] = true; while (!q.empty()) { int x = q.front(); q.pop(); order.pb(x); for (ii y : adj[x]) { if (!vis[y.fi]) { vis[y.fi] = true; q.push(y.fi); } } } /* cout<<"order: "; for (int x : order) cout<<x<<" "; cout<<endl;*/ vector<ll> ans(N, 0); for (ll i = 0; i < N; i++) { ans[order[i]] = (i / K) * (N - 1 - i) + ((N - 1 - i) / K) * i; } // cout<<"ANSWER: "; for (ll x : ans) cout<<x<<" "; cout<<endl; }
#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...