Submission #91098

#TimeUsernameProblemLanguageResultExecution timeMemory
91098emil_physmathMoney (IZhO17_money)C++14
0 / 100
2 ms652 KiB
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <set>
using namespace std;

int a[1000005];

int main()
{
	int n;
	cin>>n;
	for (int k=0; k<n; k++)
		scanf("%d", a+k);
	int i=0, ans=0;
	set<int> curSorted;
	curSorted.insert(0);
	while (i<n)
	{
		ans++;
		int j=i;
		while (j+1<n && a[j+1]>a[j])
			j++;
		auto lBound=curSorted.upper_bound(a[i]);
		lBound--;
		auto rBound=(lBound==curSorted.end()?curSorted.begin():++lBound);
		if (rBound!=curSorted.end())
			j=upper_bound(a+i, a+j+1, *rBound)-a-1;
		for (int k=i; k<=j; k++)
			curSorted.insert(a[k]);
		i=j+1;
	}
	cout<<ans<<'\n';

	char I;
	cin >> I;
	return 0;
}

Compilation message (stderr)

money.cpp: In function 'int main()':
money.cpp:14:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", a+k);
   ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...