Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <stack>
- #include <vector>
- struct myPair {
- int first;
- int second;
- };
- int main() {
- using namespace std;
- ifstream fin("input.txt");
- ofstream fout("output.txt");
- int n;
- fin >> n;
- stack<myPair> st;
- vector<int> answer(n);
- vector<int> tmpArr(n);
- for (int i(0); i < n; i++)
- fin >> tmpArr[i];
- st.push({tmpArr[0], 0});
- int i = 1;
- while (i < n) {
- int topNum;
- topNum = st.top().first;
- if (tmpArr[i] > topNum) {
- myPair tmpPair = st.top();
- st.pop();
- answer[tmpPair.second] = tmpArr[i];
- if (st.empty()) {
- st.push({tmpArr[i], i});
- i++;
- }
- } else {
- st.push({tmpArr[i], i});
- i++;
- }
- }
- while (!st.empty()) {
- answer[st.top().second] = st.top().first;
- st.pop();
- }
- for (int num: answer) {
- fout << num << ' ';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement