最后两点TLE了,大佬求救!!!
查看原帖
最后两点TLE了,大佬求救!!!
596448
_Ayanami_Rei_楼主2022/3/25 17:31
#include <iostream>
using namespace std;
int a[100010];

void Fix(int start,int end) {
	for (int i = start;i <= end; ++i) {
		a[i]--;
	}
}

int main() {
	int n, ans = 0;
	cin >> n;
	for (int i = 1;i <= n; ++i) {
		cin >> a[i];
	}
	for (int i = 1;i <= n; ++i) {
		if (a[i] == 0) continue;
		if (a[i + 1] == 0) {
			ans += a[i];
			a[i] = 0;
			continue;
		}
		do{
			int end = i;
			for (int j = i + 1;j <= n; ++j) {
				if(a[j] == 0)	break;
				end = j;
			}
			Fix(i, end);
			ans++;
		} while (a[i] != 0);
	}
	cout << ans;
	return 0;
}
2022/3/25 17:31
加载中...