Advertisement
Guest User

Untitled

a guest
Jul 18th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N = 100007;
  4. vector<int> g[N];
  5. int l[N],r[N];
  6. bool f[N];
  7. vector<int> tp;
  8. void dfs(int v){
  9. f[v]=true;
  10. for(int to:g[v]){
  11. if(f[to])continue;
  12. dfs(to);
  13. }
  14. tp.push_back(v);
  15. }
  16. int main(){
  17. // freopen("input.txt","r",stdin);
  18. int n;
  19. scanf("%d",&n);
  20. for(int i=1;i<=n;++i){
  21. scanf("%d %d",l+i,r+i);
  22. }
  23. int k;
  24. scanf("%d",&k);
  25. for(int i=1;i<=k;++i){
  26. int pos;
  27. int hw;
  28. scanf("%d %d",&pos,&hw);
  29. int lst=0;
  30. vector<int> vq;
  31. for(int j=0;j<hw;++j){
  32. int ps;
  33. scanf("%d",&ps);
  34. vq.push_back(ps);
  35. f[ps]=true;
  36. if(j){
  37. g[lst].push_back(ps);
  38. }
  39. lst=ps;
  40. }
  41. for(int j=1;j<=n;++j){
  42. if(f[j]==true)continue;
  43. if(l[j]<=pos&&pos<=r[j]){
  44. g[lst].push_back(j);
  45. }
  46. }
  47. for(int j=0;j<vq.size();++j)f[vq[j]]=false;
  48. }
  49.  
  50. for(int i=1;i<=n;++i){
  51. if(f[i]==false)dfs(i);
  52. }
  53. for(int i=n-1;i>=0;i--){
  54. cout<<tp[i]<<" ";
  55. }
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement