Advertisement
sherry_ahmos

Untitled

May 5th, 2022
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <cstdlib>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <iomanip>
  7. #include <numeric>
  8. #include <vector>
  9. #include <string>
  10. #include <set>
  11. #include <map>
  12. #include <deque>
  13.  
  14. using namespace std;
  15. #define ll long long
  16. void sherry()
  17. {
  18.     ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  19. #ifndef ONLINE_JUDGE
  20.     freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  21. #endif
  22. }
  23. /*bool comp(pair<int, int> a, pair<int, int> b)
  24. {
  25.     return a.second < b.second;
  26. }*/
  27. int main()
  28. {
  29.     sherry();
  30.     ll n, count = 0;
  31.     cin >> n;
  32.     vector<int> v(0);
  33.     deque<int> de;
  34.     vector<int> fre(n + 1);
  35.     for (ll i = 0; i < n; i++)
  36.     {
  37.         ll num;
  38.         cin >> num;
  39.         fre[num]++;
  40.         v.push_back(num);
  41.     }
  42.     for (ll i = 1; i <= n; i++)
  43.     {
  44.         if (fre[i] == 0)
  45.         {
  46.             if (v[i - 1] == 0 && !de.empty())
  47.             {
  48.                 v[i - 1] = de.back();
  49.                 de.pop_back();
  50.             }
  51.             de.push_back(i);
  52.         }
  53.     }
  54.     for (ll i = 0; i < n; i++)
  55.     {
  56.  
  57.         if (v[i] == 0)
  58.         {
  59.             if (de.back() == i + 1)
  60.             {
  61.                 cout << de.front() << " ";
  62.                 de.pop_front();
  63.             }
  64.             else
  65.             {
  66.                 cout << de.back() << " ";
  67.                 de.pop_back();
  68.             }
  69.         }
  70.         else
  71.         {
  72.             cout << v[i] << " ";
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement