이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
int n, x, y;
long long k;
vector<vector<pair<int, int> >> graph;
const int maxn = 2e5 + 5;
using ll = long long;
ll dist[2][maxn];
void dfs(int u, int p, int t) {
for(auto &[v, w] : graph[u]) {
if(v == p) continue;
dist[t][v] = dist[t][u] + w;
dfs(v, u, t);
}
}
int max_score(int N, int X, int Y, long long K, std::vector<int> U, std::vector<int> V, std::vector<int> W) {
n = N;
x = X;
y = Y;
k = K;
graph.resize(n);
bool line = 1;
for(int i=0; i<n-1; i++) {
if(abs(U[i] - V[i]) != 1) line = 0;
graph[U[i]].push_back({ V[i], W[i] });
graph[V[i]].push_back({ U[i], W[i] });
}
// if(line && n <= 50) {
// int ans = 0;
// dfs(x, x, 0);
// dfs(y, y, 1);
// for(int a=x; a<n; a++) {
// for(int b=x; b>=0; b--) {
// for(int c=y; c<n; c++) {
// for(int d=y; d>=0; d--) {
// ll total = 0;
// for(int i=0; i<n; i++) {
// ll curr = 0;
// if(b <= i && i <= a) curr = max(curr, dist[0][i]);
// if(d <= i && i <= c) curr = max(curr, dist[1][i]);
// total += curr;
// }
// if(total <= k) ans = max(ans, a - b + c - d);
// }
// }
// }
// }
// return ans + 2;
// }
int ans = 0;
ll total = k;
dfs(x, x, 0);
dfs(y, y, 1);
vector<ll> v;
for(int i=0; i<2; i++)
for(int j=0; j<n; j++) v.push_back(dist[i][j]);
sort(v.begin(), v.end());
for(auto &x : v) {
if(x > total) break;
ans++;
total -= x;
}
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:27:10: warning: variable 'line' set but not used [-Wunused-but-set-variable]
27 | bool line = 1;
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |