Submission #1189765

#TimeUsernameProblemLanguageResultExecution timeMemory
1189765JooDdae빌딩 장식 3 (JOI15_building3)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int n, a[1001001];

int main() {
	cin.tie(0)->sync_with_stdio(0);
	cin >> n;
	for(int i=1;i<n;i++) cin >> a[i];

	int mx = 0, flag = 0, R = 0;
	for(int i=1;i<n;i++) {
		if(mx+2 < a[i]) return cout << 0, 0;
		if(mx+2 == a[i]) flag++, R = i;
		mx = max(mx, a[i]);
	}

	if(flag > 1) return cout << 0, 0;

	if(flag) {
		int L = 1;
		while(a[L] < mx-2) L++;
		return cout << R-L, 0;
	}

	ll ans = 0; mx = 0;
	for(int i=1;i<=n;i++) {
		ans += mx+1, mx = max(mx, a[i]);
	}
	cout << ans - (n-1);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...