Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. ios_base::sync_with_stdio(false);
  8. cin.tie(0);
  9. int n, m; cin >> n >> m;
  10. vector<int> a(m);
  11. for (int i = 0; i < m; i++) {
  12. cin >> a[i];
  13. a[i]--;
  14. }
  15. vector<int>p(n);
  16. vector<int>pos(n);
  17. for (int i = 0; i < n; i++) {
  18. p[i] = i;
  19. pos[i] = i;
  20. }
  21. vector<int>p_min(n, 1000000000);
  22. vector<int>p_max(n, -1000000000);
  23. for (int i = 0; i < n; i++) {
  24. p_min[p[i]] = min(p_min[p[i]], i);
  25. p_max[p[i]] = max(p_max[p[i]], i);
  26. }
  27. for (int i = 0; i < m; i++) {
  28. if (pos[a[i]] != 0) {
  29. int l = p[pos[a[i]] - 1];
  30. int r = p[pos[a[i]]];
  31. swap(p[pos[a[i]] - 1], p[pos[a[i]]]);
  32. pos[l]++;
  33. pos[r]--;
  34. p_min[l] = min(p_min[l], pos[l]);
  35. p_max[l] = max(p_max[l], pos[l]);
  36. p_min[r] = min(p_min[r], pos[r]);
  37. p_max[r] = max(p_max[r], pos[r]);
  38. }
  39. /*
  40. for (int j = 0; j < n; j++) {
  41. cout << pos[j] << " ";
  42. }
  43. cout << endl;
  44. for (int j = 0; j < n; j++) {
  45. cout << p[j] << " ";
  46. }
  47. cout << endl;
  48. */
  49. }
  50. for (int i = 0; i < n; i++) {
  51. cout << p_min[i] + 1 << " " << p_max[i] + 1 << "\n";
  52. }
  53. return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement