社区讨论

30分求调(subtask3 WA,subtask4 TLE)

P6033[NOIP 2004 提高组] 合并果子 加强版参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mhjtaxoi
此快照首次捕获于
2025/11/04 08:09
4 个月前
此快照最后确认于
2025/11/04 08:09
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=1e7+2;
long long n,n2,a1[N],a2[N],sum;int i=0,j=0,k,w;
int read(int x = 0) {
	char ch = getchar();
	while(ch < 48 || ch > 57) ch = getchar();
	while(ch >= 48 && ch <= 57) {
		x = x * 10 + (ch ^ 48);
		ch = getchar();
	}
	return x;
}
void write(int x) {
	if(x > 9) write(x / 10);
	putchar(x % 10 ^ 48);
}
int main() {
	n=read();
	memset(a1,127,sizeof(a1));
	memset(a2,127,sizeof(a2));
	for(int i=0; i<n; i++) {
		a1[i]=read();
	}
	sort(a1,a1+n);
	for(k=1; k<n; k++) {
		w=a1[i]<a2[j]?a1[i++]:a2[j++];
		w+=a1[i]<a2[j]?a1[i++]:a2[j++];
		a2[n2++]=w;
		sum+=w;
	}
	write(sum);
	return 0;
}

回复

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

正在加载回复...