【玄关】ABC C求调
  • 板块学术版
  • 楼主skyskyCCC
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/12/2 21:44
  • 上次更新2023/12/3 08:38:39
查看原帖
【玄关】ABC C求调
541739
skyskyCCC楼主2023/12/2 21:44

同学的代码,不知道什么问题。据他说对拍的样例都一样。因为我不是这种方法,所以我不知道怎么调。玄关。或者证明伪。谢谢

#include<iostream>
#include<algorithm>
using namespace std;
int n,a[200005];
int b[1000005],ans,jl;
int sum[2000005];
template <typename T> void read(T &x){
	x = 0;
	bool f = 0;
	char c = getchar();
	while (c < '0' || c > '9') f |= c == '-', c = getchar();
	while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + (c ^ 48), c = getchar();
	if (f) x = -x;
}
template <typename T> void write(T x){
	if (x < 0) putchar('-'), x = -x;
	if (x < 10) putchar(x + '0');
	else write(x / 10), putchar(x % 10 + '0');
}
int main(){
	read(n);
	for (int i=1;i<=n;i++){
		read(a[i]);
		b[a[i]]++;
		jl=max(jl,a[i]);
	}
	sum[jl]=b[jl]*jl;
	for (int i=jl-1;i>=1;i--){
		sum[i]=sum[i+1]+b[i]*i;
		//cout<<i<<" yep! "<<sum[i]<<"\n";
		//if(b[i]!=0) cout<<sum[a[i]+1]<<" ";
	}
	for (int i=1;i<=n;i++){
		cout<<sum[a[i]+1]<<" ";
	}
	return 0;
}
2023/12/2 21:44
加载中...