codeforce791A

还好没打这场,不然掉大分

A

题意:公式4a+6b=n,给出n,求出a+b最大值与最小值

由公式我们易得出结论我们最终要求n/4-b/2的最大值与最小值

对于最大值很显然b=0,所以输出n/4

对于最小值,显然b要尽可能大而又可以让a为整数

在n%6后,显然有2,4,0三种情况,0与4说明n/6后4也可以被整除,对于2,则说明我们要减少一个6给2凑成8,以便给4整除

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline void solve()
{
    ll n;cin>>n;
    if(n%2!=0||n==2){
        cout<<-1<<endl;return;
    }
    ll b;
    if(n%6==4||n%6==0) b=n/6;
    else if(n%6==2) b=(n)/6-1;
    cout<<min(n/4,n/4-b/2)<<' '<<n/4<<endl;
    
}
int main()
{
    ll t;
    cin>>t;
    while(t--){
        solve();
    }
} 

 

posted on 2022-05-16 20:46  zesure  阅读(18)  评论(0编辑  收藏  举报

导航