原来超时了,时间复杂度O(n²),现在O(n),不超时但WA
#include<iostream>
#include<cmath>
using namespace std;
long long n, a[200010], cnt, sum;
int main()
{
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = 1; i <= n; i++)
{
a[i] += sum;
if(a[i] == 0) continue;
cnt += abs(a[i]);
if(a[i] < 0)
{
sum += (i + 1) * abs(a[i]);
a[i] = 0;
}
else
{
sum -= abs(a[i]) * (i + 1);
a[i] = 0;
}
cout << sum << endl;
}
cout << cnt << endl;
return 0;
}
给个思路呗。