WDC之力 @ 2020-03-08 08:53:25
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,b,c;
cin>>n;
if(n<3){
cout<<-1<<endl;
}
for(int i=1;i<=n/7;i++){
for(int j=1;j<=n/4;j++){
int k=(n-i*7-j*4)/3;
int Min=2147483647;
int min=2147483647;
if(Min>i){
Min=i;
}
if(Min>j){
Min=j;
}
if(Min>k){
Min=k;
}
if(min>a){
min=k;
}
if(min>b){
min=b;
}
if(min>c){
min=c;
}
if(n==3*k+4*j+7*i){
if(Min>min){
a=i;b=j;c=k;
}
if(Min==min){
if((a+b+c)<=(i+j+k)){
a=i;b=j;c=k;
}
}
}
}
}
cout<<a<<" "<<b<<" "<<c;
return 0;
}
by 江户川·萝卜 @ 2020-03-08 09:31:35
k有可能是负值啊