제출 #166397

#제출 시각아이디문제언어결과실행 시간메모리
166397abilMoney (IZhO17_money)C++14
0 / 100
2 ms376 KiB
#include <bits/stdc++.h>
 
#define fr first
#define sc second
#define pb push_back
#define mk make_pair
#define all(s) s.begin(),s.end()
#define int long long
 
using namespace std;
 
const int N = (1e6 + 12);
const int mod = (1e9 + 7);
const int INF = (1e15 + 9);

int t[N], a[N], n;

void update(int ind){
	for(;ind <= n; ind = ind | (ind + 1)){
		t[ind]++;
	}
}

int get(int pos){
	int res = 0;
	for(;pos >= 1; pos = (pos & (pos + 1)) - 1){
		res += t[pos];
	}
	return res;
}
main()
{
	int ans = 0;
	cin >> n;
	for(int i = 1;i <= n; i++){
		scanf("%lld", &a[i]);
	}
	int pos = 0;
	for(int i = 1;i <= n; i++){
		if(a[i] == a[i + 1]){
			continue;
		}
		pos++;
		a[pos] = a[i];
	}
	n = pos;
	ans++;
	update(a[n]);
	for(int i = n - 1;i >= 1; i--){
		if(a[i] < a[i + 1]){
			if(get(a[i + 1]) - get(a[i]) != a[i + 1] - a[i]){
				ans++;
			}
		}
		else{
			ans++;
		}
		update(a[i]);
	}
	cout << ans;
}

컴파일 시 표준 에러 (stderr) 메시지

money.cpp:31:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
money.cpp: In function 'int main()':
money.cpp:36:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld", &a[i]);
   ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...