QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#879019#7938. Graph Racefractal#WA 7ms63452kbC++171.8kb2025-02-01 19:51:262025-02-01 19:51:27

Judging History

This is the latest submission verdict.

  • [2025-02-01 19:51:27]
  • Judged
  • Verdict: WA
  • Time: 7ms
  • Memory: 63452kb
  • [2025-02-01 19:51:26]
  • Submitted

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';
    }
}

詳細信息

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'