Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. struct seg {
  2. int dn, up, id;
  3. bool operator<(const seg&a)const {
  4. return dn < a.dn;
  5. }
  6. };
  7. int main()
  8. {
  9. ll q, w, e, n, m, k, qq = 0, qw = 0, wq = 0, ww = 0;;
  10. string s1, s2;
  11. cin >> n >> m;
  12. vector<seg>ver(n);
  13. for (int i = 0; i < n; i++) {
  14. cin >> ver[i].dn >> ver[i].up;
  15. ver[i].id = i;
  16. }
  17. sort(ver.begin(), ver.end());
  18. if (ver[0].dn != 1)
  19. return(cout << "No", 0);
  20. vector<seg>ans;
  21. ans.pb({ 0,0,-1 });
  22. ans.pb(ver[0]);
  23. for (int i = 1; i < ver.size(); i++) {
  24. if (ans.back().up == m)
  25. break;
  26. if (ver[i].up >= ans.back().up&&ver[i].dn - 1 <= ans[ans.size() - 2].up) {
  27. ans.pop_back();
  28. ans.pb(ver[i]);
  29. }
  30. else if (ver[i].dn - 1 <= ans.back().up)
  31. ans.pb(ver[i]);
  32. else
  33. return(cout << "No", 0);
  34. }
  35. if (ans.back().up != m) {
  36. return(cout << "No", 0);
  37. }
  38. cout << "Yes" << endl;
  39. cout << ans.size() - 1 << endl;
  40. for (int i = 1; i < ans.size(); i++) {
  41. cout << ans[i].id + 1 << ' ';
  42. }
  43. q = 1;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement