顾展纶1234 @ 2021-08-07 21:11:34
#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;
}
by 顾展纶1234 @ 2021-08-08 16:43:56
#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;
if(n==0){
cout<<0<<" "<<0<<" "<<0;
return 0;
}
for(i[0]=0;i[0]<=n/7+1;i[0]++){
for(i[1]=0;i[1]<=n/4+1;i[1]++){
if(n-7*i[0]-4*i[1]==0){
i[2]=0;
}
else 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;
}
by 顾展纶1234 @ 2021-08-08 16:44:16
修改了一下,30