求调(玄关)
查看原帖
求调(玄关)
746092
SEAN2022NAES楼主2024/4/21 11:57
#include <bits/stdc++.h>
using namespace std;
using PII=array<int, 2>;
#define cst const
#define  FOR(i, s, e) for (int i=int(s);i<=int(e);i++)
#define _FOR(i, s, e) for (int i=int(s);i>=int(e);i--)

#define INF 0x7f7f7f7f
int n;
vector<int> sum, ans, out;
vector<PII> a;
int main(){
    ios::sync_with_stdio(false), cin.tie(0);
    
    cin>>n, a.resize(n+1), sum.resize(n+1), ans.resize(n+1), out.resize(n+1);
    FOR (i, 1, n)cin>>a[i][0], a[i][1]=i;
    sort(a.begin()+1, a.end(), greater<PII>());
    int times=-1, x=-1;
    FOR (i, 1, n){
    	if (x==a[i][0])times++;
    	else x=a[i][0], times=1;
    	sum[i]=sum[i-1]+a[i][0];
    	ans[i]=sum[i]-times*x;
    }
    FOR (i, 1, n)out[a[i][1]]=ans[i];
    FOR (i, 1, n)printf("%d ", out[i]);
    return 0;
}

2024/4/21 11:57
加载中...