Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- //#pragma comment(linker, "/STACK:100000000")
- #include <algorithm>
- #include <iostream>
- #include <iomanip>
- #include <cmath>
- #include <string>
- #include <cstring>
- #include <set>
- #include <stdio.h>
- #include <vector>
- #include <map>
- #include <time.h>
- #define ll long long
- #define ld long double
- #define f(i, a, b) for(int i=(int)(a); i<(int)(b); ++i)
- #define fn(i, b) for(int i=0; i<(int) (b); i++)
- #define fz(i, a, b) for (int i=(int)(a); i>=(int)(b); --i)
- #define mp make_pair
- #define pii pair<int, int>
- #define pb push_back
- #define bg begin()
- #define ed end()
- #define pi 3.141592653589793238462643383279
- int gcd(int a, int b) {
- if (b == 0)
- return a;
- else
- return gcd(b, a % b);
- }
- ll lcm(ll a, ll b) { return ((a / gcd(a, b))*b); }
- #define MAX 1010 //53
- #define INF 1e5
- #define y1 yy1
- #define eps 0.01
- void out(std::string s){ std::cout << s << "\n"; exit(0); }
- ll sqr(ll A) { return A*A; };
- #define ls (v << 1)
- #define rs (v << 1)+1
- using namespace std;
- int n, k, a, b, d, x, y;
- vector<int> g[MAX];
- bool used[MAX];
- int ans = 0;
- void dfs(int v, int height){
- if (height > d) return;
- if (used[v]) return;
- used[v]=1;
- if (v == b) {
- ans++;
- return;
- }
- fn(i, g[v].size()) dfs(g[v][i], height + 1);
- }
- int main(){
- freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
- cin >> n >> k >> a >> b >> d;
- fn(i, k) {
- cin >> x >> y;
- g[x].pb(y);
- //g[y].pb(x);
- }
- ans = 0;
- dfs(a, 0);
- cout << ans << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement