Submission #4027528
Source Code Expand
#include <bits/stdc++.h>
#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define SORT(v, n) sort(v, v+n);
#define VSORT(v) sort(v.begin(), v.end());
#define VRSORT(v) sort(v.rbegin(), v.rend());//vectorの降順ソート
#define ll long long
#define pb(a) push_back(a)
#define INF 1e18
#define MOD 1000000007
using namespace std;
typedef pair<int, int> P;
typedef pair<ll, ll> LP;
typedef pair<int, P> PP;
typedef pair<ll, LP> LPP;
typedef vector<unsigned int>vec;
typedef vector<vec> mat;
typedef tuple<ll, int, int> T;
int dy[]={0, 0, 1, -1, 0};
int dx[]={1, -1, 0, 0, 0};
ll c[101][101];
ll COUNT[101];
struct Node{
ll id, dist;
Node(ll a, ll b){
id = a;
dist = b;
}
bool operator <(const Node& another) const
{
return dist < another.dist;
}
};
int main(){
cin.tie(0);
ios::sync_with_stdio(false);
ll N;cin>>N;
ll a,b;
cin>>a>>b;
ll M;
cin>>M;
REP(i,101){
COUNT[i]=0;
REP(j,101){
if(i==j) c[i][j]=0;
else c[i][j]=INF;
}
}
REP(i,M){
ll x,y;
cin>>x>>y;
c[x][y] = c[y][x] = 1;
}
//ワーシャルフロイド
REP(k,101){
REP(j,101){
REP(i,101){
c[i][j] = min(c[i][j],c[i][k]+c[k][j]);
}
}
}
//aからの距離で最短順にソート
vector<Node>from_a;
REP(i,101){
if(a!=i && c[a][i]!=INF){
auto node = Node(i,c[a][i]);
from_a.push_back(node);
}
}
VSORT(from_a)
REP(i,101){
if(a!=i && c[a][i]==1) COUNT[i]=1;
}
for(auto node : from_a){
ll id=node.id;
REP(i,101){
if(c[id][i]==1 && c[a][i] == node.dist+1){
COUNT[i] += COUNT[id];
COUNT[id] %= MOD;
}
}
}
cout << COUNT[b] << endl;
}
Submission Info
Submission Time |
|
Task |
C - 正直者の高橋くん |
User |
Bondo416 |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1912 Byte |
Status |
WA |
Exec Time |
3 ms |
Memory |
384 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 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 |
2 ms |
384 KB |
subtask0_sample_02.txt |
AC |
2 ms |
384 KB |
subtask1_01.txt |
AC |
2 ms |
384 KB |
subtask1_02.txt |
AC |
2 ms |
384 KB |
subtask1_03.txt |
AC |
2 ms |
384 KB |
subtask1_04.txt |
WA |
2 ms |
384 KB |
subtask1_05.txt |
AC |
2 ms |
384 KB |
subtask1_06.txt |
AC |
2 ms |
384 KB |
subtask1_07.txt |
AC |
2 ms |
384 KB |
subtask1_08.txt |
AC |
2 ms |
384 KB |
subtask1_09.txt |
AC |
2 ms |
384 KB |
subtask1_10.txt |
AC |
3 ms |
384 KB |
subtask1_11.txt |
AC |
2 ms |
384 KB |
subtask1_12.txt |
AC |
2 ms |
384 KB |
subtask1_13.txt |
AC |
2 ms |
384 KB |
subtask1_14.txt |
AC |
2 ms |
384 KB |
subtask1_15.txt |
AC |
2 ms |
384 KB |
subtask1_16.txt |
AC |
2 ms |
384 KB |
subtask1_17.txt |
AC |
2 ms |
384 KB |
subtask1_18.txt |
AC |
2 ms |
384 KB |
subtask1_19.txt |
AC |
2 ms |
384 KB |
subtask1_20.txt |
AC |
2 ms |
384 KB |
subtask1_21.txt |
AC |
2 ms |
384 KB |
subtask1_22.txt |
AC |
2 ms |
384 KB |
subtask1_23.txt |
AC |
2 ms |
384 KB |
subtask1_24.txt |
AC |
2 ms |
384 KB |
subtask1_25.txt |
AC |
2 ms |
384 KB |
subtask1_26.txt |
AC |
2 ms |
384 KB |
subtask1_27.txt |
AC |
2 ms |
384 KB |
subtask1_28.txt |
AC |
2 ms |
384 KB |
subtask1_29.txt |
AC |
2 ms |
384 KB |
subtask1_30.txt |
AC |
2 ms |
384 KB |