Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define mp make_pair
- #define s second
- #define f first
- int n,l=1,z,a,b,m,c;//m-dlugosc, l-licznik, a-liczba wczytywanych dziur, b-miejsca dziur, counter
- vector <pair <int, pair <int, int> > > p[100010];//przedzialy
- vector <pair <int, bool> > g[100010];//graf
- //vector <bool> d[100010];
- stack <int> w;//pierwsze wierzcholki do polaczenia z zerowym
- int main()
- {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- cin>>n>>m>>z;
- for(int i=1; i<=n; ++i)
- {
- cin>>a>>b;
- p[i].push_back(mp(l,mp(1,b-1)));//kazdy przedzial to wierzcholek
- //cout<<p[i][0].f<<" "<<p[i][0].s.f<<" "<<p[i][0].s.s<<" ";
- w.push(l);
- l++;//przedzialy ida na pale
- if (a>2)
- {
- for(int j=1; j<a; ++j)
- {
- cin>>b;
- p[i].push_back(mp(l,mp(p[i][j-1].s.s+2,b-1)));//przedzial od ostatniej dziury do aktualnej
- g[l].push_back(mp(l-1, 1));
- //cout<<p[i][j].f<<" "<<p[i][j].s.f<<" "<<p[i][j].s.s<<" ";
- l++;
- }
- }
- p[i].push_back(mp(l,mp(p[i][a-1].s.s+2,m)));
- g[l].push_back(mp(l-1, 1));
- //cout<<p[i][a].f<<" "<<p[i][a].s.f<<" "<<p[i][a].s.s<<endl;
- l++;
- }
- while (w.size()>0)
- {
- g[0].push_back(w.back());
- w.pop();
- }
- for(int i=2; i<=n; ++i)
- {
- c=0;
- for(int j=0; j<(int)p[i].size(); ++j)
- {
- if (p[i-1][c].s.s<p[i][j].s.s) //schodzenie w dol z pierwszej wyspy u gory
- {
- g[p[i-1][c].f].push_back(mp(p[i][j].f,0));
- cout<<c<<" "<<j<<" dol"<<" ";
- c++;
- }
- while(/*(p[i-1][c].s.f<=p[i][j].s.s || p[i-1][c].s.s>p[i][j].s.f) && */ c<(int)p[i-1].size())
- {
- if (p[i-1][c].s.f<=p[i][j].s.s)
- {
- g[p[i][j].f].push_back(mp(p[i-1][c].f, 1));//potem juz jest pattern dla gornej wyspy ze najpierw sie do niej wchdzi a potem schodzi
- cout<<c<<" "<<j<<" gora"<<" ";
- }
- else break;
- if (p[i-1][c].s.s<p[i][j].s.s)
- {
- g[p[i-1][c].f].push_back(mp(p[i][j].f,0));
- cout<<c<<" "<<j<<" dol"<<" ";
- c++;//jak juz zejdziesz zmieniasz wyspe
- }
- }
- }
- cout<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement