社区讨论

【玄关】ABC C求调

学术版参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lpo3wne0
此快照首次捕获于
2023/12/02 21:45
2 年前
此快照最后确认于
2023/12/03 08:38
2 年前
查看原帖
同学的代码,不知道什么问题。据他说对拍的样例都一样。因为我不是这种方法,所以我不知道怎么调。玄关。或者证明伪。谢谢
CPP
#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;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...