Submission #2551358


Source Code Expand

#include <iostream>
#include <queue>
#include <vector>
#include <functional>
#include <cstring>

using namespace std;

typedef long long ll;
typedef pair<int, int> P;

const ll MOD = 1000000007;
const ll INF = 100000007;
const int MAX_N = 101;
vector<int> G[MAX_N];
bool used[MAX_N];
int dist[MAX_N];
ll cnt[MAX_N];

void dijkstra(int x, int n) {
    for(int i=0;i<n;i++) {
        dist[i] = INF;
    }
    priority_queue<P, vector<P>, greater<P> > pq;
    dist[x] = 0;
    pq.push(P(0, x));
    while (!pq.empty()) {
        P p = pq.top();pq.pop();
        used[p.second] = true;
        for (int i=0;i<G[p.second].size();i++) {
            if (!used[G[p.second][i]]) {
                dist[G[p.second][i]] = min(dist[G[p.second][i]], dist[p.second] + 1);
                pq.push(P(dist[G[p.second][i]], G[p.second][i]));
            }
        }
    }
}

void count_path(int x) {
    queue<int> q;
    q.push(x);
    while (!q.empty()) {
        int cur = q.front();q.pop();
        if (used[cur]) continue;
        used[cur] = true;
        for (int i=0;i<G[cur].size();i++) {
            if (dist[cur] + 1 == dist[G[cur][i]]) {
                cnt[G[cur][i]] = (cnt[G[cur][i]] + cnt[cur]) % MOD;
                q.push(G[cur][i]);
            }
        }
    }
}

int main() {
    int a, b, n, m, x, y;
    cin >> n;
    cin >> a >> b;
    cin >> m;
    for (int i=0;i<m;i++) {
        cin >> x >> y;
        x--;y--;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    a--;b--;
    memset(used, false, sizeof(used));
    dijkstra(a, n);
    cnt[a] = 1;
    memset(used, false, sizeof(used));
    count_path(a);
    cout << cnt[b] << endl;
}

Submission Info

Submission Time
Task C - 正直者の高橋くん
User hashmup
Language C++14 (Clang 3.8.0)
Score 0
Code Size 1731 Byte
Status TLE
Exec Time 2104 ms
Memory 67552 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 2
AC × 27
TLE × 5
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 1 ms 256 KB
subtask0_sample_02.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 4 ms 256 KB
subtask1_04.txt TLE 2104 ms 66784 KB
subtask1_05.txt TLE 2104 ms 67296 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 2 ms 384 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 93 ms 2420 KB
subtask1_12.txt TLE 2104 ms 66272 KB
subtask1_13.txt AC 44 ms 1400 KB
subtask1_14.txt TLE 2104 ms 67552 KB
subtask1_15.txt TLE 2104 ms 66912 KB
subtask1_16.txt AC 1 ms 256 KB
subtask1_17.txt AC 1 ms 256 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 256 KB
subtask1_20.txt AC 1 ms 256 KB
subtask1_21.txt AC 1 ms 256 KB
subtask1_22.txt AC 1 ms 256 KB
subtask1_23.txt AC 1 ms 256 KB
subtask1_24.txt AC 1 ms 256 KB
subtask1_25.txt AC 1 ms 256 KB
subtask1_26.txt AC 1 ms 256 KB
subtask1_27.txt AC 1 ms 256 KB
subtask1_28.txt AC 1 ms 256 KB
subtask1_29.txt AC 1 ms 256 KB
subtask1_30.txt AC 1 ms 256 KB