Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- struct edge
- {
- long cytujacy, dzien, cytowany, zDnia;
- edge(long ccy, long dz, long cny, long zD)
- {
- cytowany = cny;
- cytujacy = ccy;
- zDnia = zD;
- dzien = dz;
- }
- };
- bool compare(edge k,edge l)
- {
- return k.dzien < l.dzien;
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- long media,start,data,czas,krawedzi;
- long cytujacy,dzien,cytowany,zDnia,wynik=1;
- cin >> media >>start >> data >> czas >> krawedzi;
- long tab[7][media];
- bool help = false;
- vector<edge> wektor;
- for(long i=0;i<7;i++)
- {
- for(long j=0;j<media;j++)
- tab[i][j]=0;
- }
- tab[data][start] = 1;
- for(long i=0;i<krawedzi;i++)
- {
- cin >> cytujacy >> dzien >> cytowany >> zDnia;
- edge ne(cytujacy, dzien, cytowany, zDnia);
- wektor.push_back(ne);
- }
- sort(wektor.begin(),wektor.end(),compare);
- for(long i=0; i<czas;i++)
- {
- for(edge a: wektor)
- {
- if(a.dzien == data)
- {
- help = true;
- tab[a.dzien][a.cytujacy] = (tab[a.zDnia][a.cytowany] + tab[a.dzien][a.cytujacy])%100000007;
- wynik = (wynik + tab[a.zDnia][a.cytowany])%100000007;
- for(long j = 0;j < media; j++)
- tab[(a.dzien+1)%7][j] = 0;
- }
- else if(help)
- break;
- }
- data = (data+1)%7;
- help = false;
- }
- cout << (wynik)%100000007;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement