Submission #976969

# Submission time Handle Problem Language Result Execution time Memory
976969 2024-05-07T09:50:03 Z Isam Money (IZhO17_money) C++17
0 / 100
2 ms 4700 KB
#include<bits/stdc++.h>
using namespace std;

#define eb emplace_back

constexpr int sz = 1e6 + 6;

int n, a[sz], c[sz];

vector<vector<int>> b, newe;

map<pair<int, int>, int> co, deco;

signed main(){
	ios_base::sync_with_stdio(0), cin.tie(0);
	cin >> n;
	memset(c, -1, sizeof(c));
	for(register int i = 1; i <= n; ++i){
		cin >> a[i];
		co[{a[i], i}];
		if(c[a[i]] == -1) c[a[i]] = i;
	}
	
	int tot(0);
	
	for(auto &to : co){
		to.second = ++tot;
	}
	
	for(register int i = 1; i <= n; ++i){
		a[i] = co[{a[i], i}];
	}
	
	for(register int i = 1; i <= n; ++i){
		vector<int> tmp = {a[i++]};
		
		while(a[i-1] <= a[i]){
			
			tmp.eb(a[i]);
			
			
			++i;
		}
		b.eb((vector<int>)tmp);
		--i;
		
	}
	
//	for(auto to : b){
//		for(auto toto : to) cout << toto << ' ';
//		cout << '\n';
//	}
	
	
	for(auto &to : b){
		vector<int> tmp = to, d;
		
		const int m = tmp.size();
		
		tmp.eb(0);
		
		for(register int i = 0; i < m; ++i){
			d.eb(tmp[i]);
			int l = tmp[i], r = tmp[i+1];
			
			bool flag = false;
			
			for(register int j = l; j <= r && !flag; ++j){
				if(c[j] < c[l]) flag = true;
			}
			if(flag || i == m-1){
				newe.eb((vector<int>)d);
				d.clear();
		    }	
		}
		
		
	}
	
//	for(auto to : newe){
//		for(auto toto : to) cout << toto << ' ';
//		cout << '\n';
//	}
	
	cout << (int)newe.size() << '\n';
	
	
	
}

Compilation message

money.cpp: In function 'int main()':
money.cpp:18:19: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   18 |  for(register int i = 1; i <= n; ++i){
      |                   ^
money.cpp:30:19: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |  for(register int i = 1; i <= n; ++i){
      |                   ^
money.cpp:34:19: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   34 |  for(register int i = 1; i <= n; ++i){
      |                   ^
money.cpp:62:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |   for(register int i = 0; i < m; ++i){
      |                    ^
money.cpp:68:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   68 |    for(register int j = l; j <= r && !flag; ++j){
      |                     ^
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4560 KB Output is correct
2 Correct 1 ms 4700 KB Output is correct
3 Correct 1 ms 4700 KB Output is correct
4 Incorrect 1 ms 4700 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4560 KB Output is correct
2 Correct 1 ms 4700 KB Output is correct
3 Correct 1 ms 4700 KB Output is correct
4 Incorrect 1 ms 4700 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4560 KB Output is correct
2 Correct 1 ms 4700 KB Output is correct
3 Correct 1 ms 4700 KB Output is correct
4 Incorrect 1 ms 4700 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4560 KB Output is correct
2 Correct 1 ms 4700 KB Output is correct
3 Correct 1 ms 4700 KB Output is correct
4 Incorrect 1 ms 4700 KB Output isn't correct
5 Halted 0 ms 0 KB -