Submission details
Task:Bittijono
Sender:rottis
Submission time:2026-01-17 16:53:47 +0200
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.01 s1, 3details
#20.01 s1, 2, 3details
#30.01 s1, 3details
#40.01 s1, 3details
#50.01 s1, 3details
#60.01 s3details
#70.01 s2, 3details
#80.01 s3details
#90.01 s2, 3details
#100.01 s2, 3details
#110.01 s3details
#120.01 s2, 3details
#130.01 s3details
#140.01 s3details
#150.01 s3details
#160.01 s1, 2, 3details
#170.01 s1, 3details
#180.01 s1, 3details
#190.01 s3details
#200.01 s3details

Code

#include <bits/stdc++.h>
 
using namespace std;
using ll = long long;
 
const int M = 1e9 + 7;
 
ll n, m, p, t;
vector<int> g[100001];
ll dist_from_end[100001];
 
void find_shortest() {
    priority_queue<pair<int, int>> q;
    q.push({-1, n});
    bool vis[100001];
 
    while (!q.empty()) {
        pair<int, int> cur = q.top(); q.pop();
 
        if (vis[cur.second]) continue;
        vis[cur.second] = true;
        dist_from_end[cur.second] = -cur.first;
 
        for (int con : g[cur.second]) {
            q.push({cur.first - 1, con});
        }
    }
}
 
bool vis[100001]; // if extras == 1 and we go to an old node, return

map<ll, ll> cache[100001];

ll dfs(ll node, ll steps_left) {
    if (cache[node][steps_left]) return cache[node][steps_left];

    if (steps_left == 0) {
        cache[node][steps_left] = node == n;
        return node == n;
    }

    // why not???
    if (steps_left+t+10 <= dist_from_end[node]) return 0;
 
    ll res = 0;
    vis[node] = true;
    for (ll con : g[node]) {
        if (t <= 1 && vis[con]) continue;
        //if (dist_from_end[con] > steps_left + 10) continue;
        
        res += dfs(con, steps_left-1); res %= M;
    }
    vis[node] = false;
    res %= M;
    cache[node][steps_left] = res;
    return res;
}
 
int main() {
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
 
    cin >> n >> m >> p;
 
    for (ll i = 0; i < m; i++) {
        ll a, b;
        cin >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
 
    find_shortest();
 
    for (t = 0; t < p; t++) {
        //for (int i = 0; i < n; i++) cache[i].clear();

        cout << dfs(1, dist_from_end[1] + t-1) << ' ';
    }
 
    return 0;
}

Test details

Test 1 (public)

Group: 1, 3

Verdict:

input
8 3 5
10110001
01101000

correct output
11

user output
(empty)

Test 2

Group: 1, 2, 3

Verdict:

input
10 644 644
0111000100
0000010111

correct output
1932

user output
(empty)

Test 3

Group: 1, 3

Verdict:

input
10 493 986
0001110000
0001100001

correct output
986

user output
(empty)

Test 4

Group: 1, 3

Verdict:

input
10 240 720
1011001110
1000000001

correct output
1200

user output
(empty)

Test 5

Group: 1, 3

Verdict:

input
10 3 7
1110111111
0010010101

correct output
15

user output
(empty)

Test 6

Group: 3

Verdict:

input
100000 1 1000000000
001100110010101001010111000110...

correct output
50252

user output
(empty)

Test 7

Group: 2, 3

Verdict:

input
100000 1000000000 1
110010000110110100110110101011...

correct output
25055

user output
(empty)

Test 8

Group: 3

Verdict:

input
100000 1000 1000000000
001001101010100000011110000101...

correct output
50001000

user output
(empty)

Test 9

Group: 2, 3

Verdict:

input
100000 1000000000 1000
101010110001010011011011101110...

correct output
24939000

user output
(empty)

Test 10

Group: 2, 3

Verdict:

input
100000 1000000000 1000000000
001000000001000000000010110111...

correct output
25023000000000

user output
(empty)

Test 11

Group: 3

Verdict:

input
100000 123456789 987654321
100010110100011000001111001110...

correct output
5475678967593

user output
(empty)

Test 12

Group: 2, 3

Verdict:

input
100000 987654321 123456789
000100110000010110111101111101...

correct output
3071481453531

user output
(empty)

Test 13

Group: 3

Verdict:

input
100000 1000000 1000000000
001100110010100011000111101100...

correct output
49916000000

user output
(empty)

Test 14

Group: 3

Verdict:

input
100000 10000000 1000000000
110111101101111110100101011000...

correct output
494930000000

user output
(empty)

Test 15

Group: 3

Verdict:

input
100000 100000000 1000000000
111110000010100011011100110010...

correct output
4547300000000

user output
(empty)

Test 16

Group: 1, 2, 3

Verdict:

input
1 1 1
1
1

correct output
0

user output

Feedback: Incorrect character on line 1 col 1: expected "0", got "1"

Test 17

Group: 1, 3

Verdict:

input
10 600 800
0000000000
1110111111

correct output
1400

user output
(empty)

Test 18

Group: 1, 3

Verdict:

input
10 300 599
1101001010
0011010110

correct output
1198

user output
(empty)

Test 19

Group: 3

Verdict:

input
100000 300000000 500000000
010011101001001010010101101101...

correct output
10000000000000

user output
(empty)

Test 20

Group: 3

Verdict:

input
100000 60000 1000000000
110110111011010100001000011011...

correct output
3000000000

user output
(empty)