QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#879019 | #7938. Graph Race | fractal# | WA | 7ms | 63452kb | C++17 | 1.8kb | 2025-02-01 19:51:26 | 2025-02-01 19:51:27 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
const int N = 1e6;
long long INF = 1e18;
int n, m;
long long a[N], b[N], d[N], ans[N], val[N], dist[N];
bool used[N];
vector<int> g[N], h[N];
void dfs(int v, int D) {
used[v] = 1;
dist[v] = D;
ans[v] = -INF;
for (int u : h[v]) {
if (used[u] == 1) continue;
dfs(u, D + 1);
ans[v] = max(ans[v], max(ans[u], a[u] - b[u] * D));
}
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
cin >> a[i] >> b[i];
a[i + n] = a[i];
b[i + n] = b[i];
}
for (int i = 1, v, u; i <= m; ++i) {
cin >> v >> u;
g[v].push_back(u);
g[u].push_back(v);
}
for (int i = 1; i <= n; ++i) {
d[i] = -1;
}
d[1] = 0;
queue<int> q;
q.push(1);
long long lol = -INF;
while (q.size()) {
int v = q.front();
lol = max(lol, a[v] - b[v] * (d[v] + 1));
q.pop();
for (auto u : g[v]) {
if (d[u] == -1) {
d[u] = d[v] + 1;
q.push(u);
}
}
}
for (int v = 1; v <= n; ++v) {
val[v] = -INF;
for (auto u : g[v]) {
if (d[u] == d[v] + 1) {
h[v].push_back(u);
h[v + n].push_back(u + n);
}
else if (d[u] == d[v]) {
h[v].push_back(u + n);
}
}
}
dfs(1, 0);
for (int v : g[1]) {
val[v] = max(ans[v], lol);
}
for (int i = 1; i <= n; ++i) {
if (val[i] != -INF)
cout << val[i] << '\n';
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 7ms
memory: 62920kb
input:
5 4 0 0 1 1 1 1 5 1 100 40 4 1 1 2 1 3 4 5
output:
3 3 60
result:
ok 3 number(s): "3 3 60"
Test #2:
score: -100
Wrong Answer
time: 5ms
memory: 63452kb
input:
6 10 903568159 700448725 628912797 731062359 620179636 21330815 551246171 800423583 200754983 633226914 263013360 961926530 3 5 3 6 5 2 4 2 4 3 1 3 6 2 4 5 6 4 3 2
output:
577518006
result:
wrong answer 1st numbers differ - expected: '203119434', found: '577518006'