0分求助
查看原帖
0分求助
218545
眼镜犬楼主2021/2/7 18:43
#include<bits/stdc++.h>
#define M(a,b) memset(a,b,sizeof(a))
#define maxn 201
#define inf 0x7fffffff
using namespace std;
inline int read(){
    char c=getchar();int num=0;bool b=0;
    for(;c<'0'||c>'9';b=(c=='-'?1:0),c=getchar());
    for(;c>='0'&&c<='9';num=(num<<3)+(num<<1)+(c^'0'),c=getchar());
    return b?-num:num;
}
int ans;
int A,B,C,D;
int a[maxn],b[maxn],c[maxn],d[maxn];
int main(){
	A=read();
	B=read();
	C=read();
	D=read();
	for(int i=0;i<A;i++){
		a[i]=read();
	}
	sort(a,a+A);
	for(int i=0;i<A;i++){
		while(a[i]>0&&a[A-1]>0&&i!=A-1){
			a[i]--;
			a[A-1]--;
			ans++;
		} 
		if(a[A-1]==0) A--;
	}
	ans+=a[A-1];
	
	for(int i=0;i<B;i++){
		b[i]=read();
	}
	sort(b,b+B);
	for(int i=0;i<B;i++){
		while(b[i]>0&&b[B-1]>0&&i!=B-1){
			b[i]--;
			b[B-1]--;
			ans++;
		} 
		if(b[B-1]==0) B--;
	}
	ans+=b[B-1];
	
	for(int i=0;i<C;i++){
		c[i]=read();
	}
	sort(c,c+C);
	for(int i=0;i<C;i++){
		while(c[i]>0&&c[C-1]>0&&i!=C-1){
			c[i]--;
			c[C-1]--;
			ans++;
		} 
		if(c[C-1]==0) C--;
	}
	ans+=c[C-1];
	
	for(int i=0;i<D;i++){
		d[i]=read();
	}
	sort(d,d+D);
	for(int i=0;i<D;i++){
		while(d[i]>0&&d[D-1]>0&&i!=D-1){
			d[i]--;
			d[D-1]--;
			ans++;
		} 
		if(d[D-1]==0) D--;
	}
	ans+=d[D-1];
	printf("%d",ans);
	return 0;
}

各位大佬能给我的代码举个反例嘛?实在看不出错误

2021/2/7 18:43
加载中...