Advertisement
Guest User

Untitled

a guest
Dec 27th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.59 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. struct edge
  8. {
  9.     long cytujacy, dzien, cytowany, zDnia;
  10.     edge(long ccy, long dz, long cny, long zD)
  11.     {
  12.         cytowany = cny;
  13.         cytujacy = ccy;
  14.         zDnia = zD;
  15.         dzien = dz;
  16.     }
  17. };
  18.  
  19. bool compare(edge k,edge l)
  20. {
  21.     return k.dzien < l.dzien;
  22. }
  23.  
  24. int main()
  25. {
  26.     ios_base::sync_with_stdio(false);
  27.     long media,start,data,czas,krawedzi;
  28.     long cytujacy,dzien,cytowany,zDnia,wynik=1;
  29.     cin >> media >>start >> data >> czas >> krawedzi;
  30.     long tab[7][media];
  31.     bool help = false;
  32.     vector<edge> wektor;
  33.     for(long i=0;i<7;i++)
  34.     {
  35.         for(long j=0;j<media;j++)
  36.             tab[i][j]=0;
  37.     }
  38.     tab[data][start] = 1;
  39.     for(long i=0;i<krawedzi;i++)
  40.     {
  41.         cin >> cytujacy >> dzien >> cytowany >> zDnia;
  42.         edge ne(cytujacy, dzien, cytowany, zDnia);
  43.         wektor.push_back(ne);
  44.     }
  45.     sort(wektor.begin(),wektor.end(),compare);
  46.     for(long i=0; i<czas;i++)
  47.     {
  48.         for(edge a: wektor)
  49.         {
  50.             if(a.dzien == data)
  51.             {
  52.                 help = true;
  53.                 tab[a.dzien][a.cytujacy] = (tab[a.zDnia][a.cytowany] + tab[a.dzien][a.cytujacy])%100000007;
  54.                 wynik = (wynik + tab[a.zDnia][a.cytowany])%100000007;
  55.                 for(long j = 0;j < media; j++)
  56.                     tab[(a.dzien+1)%7][j] = 0;
  57.             }
  58.             else if(help)
  59.                 break;
  60.         }
  61.         data = (data+1)%7;
  62.         help = false;
  63.     }
  64.     cout << (wynik)%100000007;
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement