Submission #3404235
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define rep(i, j, n) for(int i=j;i<n;++i)
#define all(i) i.begin(),i.end()
#define rall(i) i.rbegin(),i.rend()
#define INF 1e9
#define Puts(x) puts(x? "Yes":"No")
const int mod = 1e9 + 7;
typedef long long i64;
typedef pair<int, int> pi;
template <class T> using vt = vector<T>;
template <class T> using vvt = vector<vector<T>>;
i64 gcd(int n, int m) {return (m == 0? n : gcd(m, n % m));}
i64 lcm(int n, int m) {return (n / gcd(n, m) * m);}
int dx[] = {0, 1, 0, -1, 1, 1, -1, -1};
int dy[] = {1, 0, -1, 0, 1, -1, 1, -1};
int n, m;
int a, b;
vt<int> dp, dist;
vvt<int> edge;
void bfs() {
queue<int> que;
que.push(a);
dp[a] = 1;
while(!que.empty()) {
int p = que.front();
que.pop();
for(auto nxt : edge[p]) {
if(dp[nxt] == 0) {
que.push(nxt);
dp[nxt] = dp[p];
dist[nxt] = dist[p] + 1;
}
else if(dp[nxt] && dist[nxt] == dist[p] + 1) {
(dp[nxt] += dp[p]) %= mod;
}
}
}
}
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
cin >> n >> a >> b >> m;
dp.resize(n + 1, 0);
dist.resize(n + 1, INF);
edge.resize(n + 1);
rep(i, 0, m) {
int x, y;
cin >> x >> y;
edge[x].push_back(y);
edge[y].push_back(x);
}
bfs();
cout << dp[b] << endl;
}
Submission Info
Submission Time |
|
Task |
C - 正直者の高橋くん |
User |
playroller |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1373 Byte |
Status |
AC |
Exec Time |
1 ms |
Memory |
256 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
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 |
1 ms |
256 KB |
subtask1_04.txt |
AC |
1 ms |
256 KB |
subtask1_05.txt |
AC |
1 ms |
256 KB |
subtask1_06.txt |
AC |
1 ms |
256 KB |
subtask1_07.txt |
AC |
1 ms |
256 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 |
1 ms |
256 KB |
subtask1_12.txt |
AC |
1 ms |
256 KB |
subtask1_13.txt |
AC |
1 ms |
256 KB |
subtask1_14.txt |
AC |
1 ms |
256 KB |
subtask1_15.txt |
AC |
1 ms |
256 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 |