CF2104B Move to the End
题目传送门
思路
由于每次操作只能移动一个数到序列末尾,所以第
这时的代码总时间复杂度为
注:long long。
AC Code:
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int a[N];
long long sum[N];
int maxx[N];
void solve()
{
int n;
cin >>n;
for(int i=1;i<=n;i++)
{
cin >>a[i];
sum[i]=sum[i-1]+a[i];
maxx[i]=max(maxx[i-1],a[i]);
}
for(int i=1;i<=n;i++)
{
cout <<(sum[n]-sum[n-i+2-1])+maxx[n-i+1]<<" ";
}
cout <<'\n';
}
int main()
{
int t;
cin >>t;
while(t--)
{
solve();
}
return 0;
}