Submission #169789

#TimeUsernameProblemLanguageResultExecution timeMemory
169789super_j6Money (IZhO17_money)C++14
0 / 100
3 ms508 KiB
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <stack>
using namespace std;
#define endl '\n'
#define pi pair<int, int>

const int maxn = 1000000;
int n;
pi a[maxn];
bool used[maxn];
stack<int> stk;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	
	cin >> n;
	
	for(int i = 0; i < n; i++){
		cin >> a[i].first;
		a[i].second = i;
	}
	
	sort(a, a + n);
	
	int ret = 0;
	for(int i = 0; i < n; i++){
		if(stk.empty() || !a[i].second || !used[a[i].second - 1]){
			stk.push(a[i].second);
			used[a[i].second] = 1;
		}else{
			while(stk.top() != a[i].second - 1){
				used[stk.top()] = 1;
				stk.pop();
				ret++;
			}
			used[stk.top()] = 0;
			stk.pop();
			stk.push(a[i].second);
			used[a[i].second] = 1;
		}
	}
	
	ret += stk.size();
	cout << ret << endl;

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...