제출 #81966

#제출 시각아이디문제언어결과실행 시간메모리
81966SaboonCalvinball championship (CEOI15_teams)C++14
20 / 100
1082 ms908 KiB
#include <bits/stdc++.h>
#define F first
#define S second
#define PB push_back
#define PF push_front
#define MP make_pair
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
const int maxn = 1e3 + 10;
const int mod = 1e9 + 7;

int a[maxn], b[maxn], par[maxn];

int main() {
	srand (time (NULL));
	int n;
	cin >> n;
	int M = 0;
	for (int i = 1; i <= n; i++) { 
        cin >> a[i];
        M = max (M, a[i]);
		b[i] = 1;
		par[i] = 1;
	}
	if (M == 1)
	    return cout << 1 << endl, 0;
	int cnt = 1;
	bool eq = false;
	while (!eq) {
		cnt ++;
		for (int i = n; i >= 1; i--) {
			if (b[i] != par[i - 1] + 1) {
				b[i] ++;
				par[i] = max (par[i], b[i]);
				for (int j = i + 1; j <= n; j++) {
					par[j] = par[j - 1];
					b[j] = 1;
				}
				break;
			}
		}
		eq = true;
		for (int i = 1; i <= n; i++)
			if (a[i] != b[i])
				eq = false;
	}
	cout << cnt << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...