蒟蒻爆0,对拍10数据全对
查看原帖
蒟蒻爆0,对拍10数据全对
366316
桃雨凪丝楼主2021/7/25 22:26

求数据

#include<bits/stdc++.h>
using namespace std;
bool cmp(int aaa,int bbb){
	return aaa>bbb;
}
int k[5];
int a[100];
int s;
int ans;
bool vio;
void dfs(int x,int y){
	if(a[x]==0){
		vio=false;
		return;
	} 
	if(a[y]==0){
		ans+=a[x];
		vio=false;
		return ;
	} 
	else{
		if(a[x]-a[y]<0&&vio){
			ans+=a[x];
			a[y]-=a[x];
			dfs(y,y+1);
		}
		
		if((a[x]-a[y])==0&&vio){
			ans+=a[x];
			a[x]=0;
			a[y]=0;
			dfs(y+1,y+2);
		}
		if(a[x]-a[y]>0&&vio){
			a[x]-=a[y];
			ans+=a[y];
			dfs(x,y+1);
		}
			
		
	}
	
}
int main()
{
	for(int i=1;i<=4;i++){
		cin>>k[i];
	}
	for(int i=1;i<=4;i++){
		s=k[i];
		
		for(int j=1;j<=s+10;j++){
			a[j]=0;
		}
		for(int j=1;j<=s;j++){
			cin>>a[j];
		//	cout<<j;
		}
		sort(a+1,a+s+1,cmp);
		vio=true;
		dfs(1,2);
	}
	cout<<ans;
    return 0;
}

2021/7/25 22:26
加载中...