Submission #36468

# Submission time Handle Problem Language Result Execution time Memory
36468 2017-12-09T09:14:27 Z szawinis Money (IZhO17_money) C++14
0 / 100
0 ms 9828 KB
#include <bits/stdc++.h>
using namespace std;
const int MAX = (1e6)+1;
 
int n, ans, a[MAX], f[MAX];
vector<pair<int,int> > segs;
void update(int i) { while(i < MAX) ++f[i], i += i & -i; }
int query(int i) {
	int ret = 0;
	while(i > 0) ret += f[i], i -= i & -i;
	return ret;
}
int main() {
	scanf("%d",&n);
	int curr = 0;
	for(int i = 0; i < n; i++) {
		scanf("%d",a+i);
		if(i && a[i] < a[i-1]) {
			segs.emplace_back(curr, i-1);
			curr = i;
		}
	}
	segs.emplace_back(curr, n-1);
	for(auto p: segs) {
		int l, r; tie(l, r) = p;
		++ans;
		for(int i = l+1; i <= r; i++) {
			if(query(a[i]-1) - query(a[l])) ++ans;
		}
		for(int i = l; i <= r; i++) update(a[i]);
	}
	printf("%d", ans);
}

Compilation message

money.cpp: In function 'int main()':
money.cpp:14:16: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
money.cpp:17:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",a+i);
                  ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9828 KB Output is correct
2 Correct 0 ms 9828 KB Output is correct
3 Correct 0 ms 9828 KB Output is correct
4 Correct 0 ms 9828 KB Output is correct
5 Correct 0 ms 9828 KB Output is correct
6 Correct 0 ms 9828 KB Output is correct
7 Correct 0 ms 9828 KB Output is correct
8 Incorrect 0 ms 9828 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9828 KB Output is correct
2 Correct 0 ms 9828 KB Output is correct
3 Correct 0 ms 9828 KB Output is correct
4 Correct 0 ms 9828 KB Output is correct
5 Correct 0 ms 9828 KB Output is correct
6 Correct 0 ms 9828 KB Output is correct
7 Correct 0 ms 9828 KB Output is correct
8 Incorrect 0 ms 9828 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9828 KB Output is correct
2 Correct 0 ms 9828 KB Output is correct
3 Correct 0 ms 9828 KB Output is correct
4 Correct 0 ms 9828 KB Output is correct
5 Correct 0 ms 9828 KB Output is correct
6 Correct 0 ms 9828 KB Output is correct
7 Correct 0 ms 9828 KB Output is correct
8 Incorrect 0 ms 9828 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9828 KB Output is correct
2 Correct 0 ms 9828 KB Output is correct
3 Correct 0 ms 9828 KB Output is correct
4 Correct 0 ms 9828 KB Output is correct
5 Correct 0 ms 9828 KB Output is correct
6 Correct 0 ms 9828 KB Output is correct
7 Correct 0 ms 9828 KB Output is correct
8 Incorrect 0 ms 9828 KB Output isn't correct
9 Halted 0 ms 0 KB -