Submission #1100140

#TimeUsernameProblemLanguageResultExecution timeMemory
1100140CpDarkRoadside Advertisements (NOI17_roadsideadverts)C++17
30 / 100
40 ms10204 KiB
#include<bits/stdc++.h> using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> pii; typedef vector<pii> vp; typedef vector<vp> vvp; vvp graph; vi deg; vi id; vi line; vi prefix; int rangeSum(int s, int e) { if (s == 0)return prefix[e]; return prefix[e] - prefix[s - 1]; } void dfs(int v, int p, int counter) { id[v] = counter; for (pii curr : graph[v]) { int u = curr.first; int w = curr.second; if (u == p)continue; line.push_back(w); dfs(u, v, counter + 1); } } void init(int N, vector<int> V, vector<int> U, vector<int> W) { graph.resize(N); prefix.resize(N - 1); deg.resize(N); id.resize(N); for (int i = 0;i < N - 1;i++) { graph[V[i]].push_back({ U[i],W[i] }); graph[U[i]].push_back({ V[i],W[i] }); deg[V[i]]++; deg[U[i]]++; } int start = 0; for (int i = 0;i < N;i++) { start = i; if (deg[i] == 1)break; } dfs(start, start, 0); for (int i = 0;i < line.size();i++) { if (i != 0) prefix[i] += prefix[i - 1]; prefix[i] += line[i]; } } int query(int a, int b, int c, int d, int e) { int left = min({ id[a],id[b],id[c],id[d], id[e] }); int right = max({ id[a],id[b],id[c],id[d], id[e] }); return rangeSum(left, right - 1); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, Q; cin >> N; vi V(N - 1), U(N - 1), W(N - 1); for (int i = 0;i < N - 1;i++)cin >> V[i] >> U[i] >> W[i]; init(N, V, U, W); cin >> Q; for (int i = 0;i < Q;i++) { int a, b, c, d, e; cin >> a >> b >> c >> d >> e; cout << query(a, b, c, d, e) << endl; } return 0; }

Compilation message (stderr)

roadsideadverts.cpp: In function 'void init(int, std::vector<int>, std::vector<int>, std::vector<int>)':
roadsideadverts.cpp:50:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |     for (int i = 0;i < line.size();i++) {
      |                    ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...