Advertisement
Okorosso

ближайшее число

Jun 16th, 2021
1,131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. #include <fstream>
  2. #include <stack>
  3. #include <vector>
  4.  
  5. struct myPair {
  6.     int first;
  7.     int second;
  8. };
  9.  
  10. int main() {
  11.     using namespace std;
  12.  
  13.     ifstream fin("input.txt");
  14.     ofstream fout("output.txt");
  15.  
  16.     int n;
  17.     fin >> n;
  18.     stack<myPair> st;
  19.     vector<int> answer(n);
  20.     vector<int> tmpArr(n);
  21.  
  22.     for (int i(0); i < n; i++)
  23.         fin >> tmpArr[i];
  24.  
  25.     st.push({tmpArr[0], 0});
  26.     int i = 1;
  27.     while (i < n) {
  28.         int topNum;
  29.         topNum = st.top().first;
  30.         if (tmpArr[i] > topNum) {
  31.             myPair tmpPair = st.top();
  32.             st.pop();
  33.             answer[tmpPair.second] = tmpArr[i];
  34.             if (st.empty()) {
  35.                 st.push({tmpArr[i], i});
  36.                 i++;
  37.             }
  38.         } else {
  39.             st.push({tmpArr[i], i});
  40.             i++;
  41.         }
  42.     }
  43.  
  44.     while (!st.empty()) {
  45.         answer[st.top().second] = st.top().first;
  46.         st.pop();
  47.     }
  48.  
  49.     for (int num: answer) {
  50.         fout << num << ' ';
  51.     }
  52.  
  53.     return 0;
  54. }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement