为什么20分?开了O2
查看原帖
为什么20分?开了O2
405688
顾展纶1234楼主2021/8/7 21:11
#include<bits/stdc++.h>
using namespace std;
int M(int a,int b,int c){
	int sans[3]={a,b,c};
	for(int i=0;i<3;i++){
		for(int j=i;j<3;j++){
			if(sans[i]>sans[j]){
				swap(sans[i],sans[j]);
			}
		}
	}
	return sans[0];
}
int main(){
	int i[3];
	int j1=0,j2=0,j3=0;
	int Max1=0,Max2=0;
	int n;
	bool sans=true;
	cin>>n;
	for(i[0]=0;i[0]<=n/7;i[0]++){
		for(i[1]=0;i[1]<=n/4;i[1]++){
			i[2]=(n-7*i[0]-4*i[1])/3;
			if((7*i[0]+4*i[1]+3*i[2])==n){
				if(M(i[0],i[1],i[2])>Max2){
					if((i[0]+i[1]+i[2])>Max1){
						Max1=i[0]+i[1]+i[2];
						Max2=M(i[0],i[1],i[2]);
						j1=i[0];
						j2=i[1];
						j3=i[2];
						sans=0;
					}
				}
			}
		}
	}
	if(sans){
		cout<<-1;
	}
	else cout<<j1<<" "<<j2<<" "<<j3;
}
2021/8/7 21:11
加载中...