1. 程式人生 > >101612A- Auxiliary Project (思路)

101612A- Auxiliary Project (思路)

連結:

題意:

等給出你能用的棍棒數,讓你拼數,求每位數之和最大使多少。

思路:

7的價效比是最高的,所以儘量先擺7,先對三取餘,根據餘數多少調整剩餘的數

比如,如果餘1,那麼就將其中三個棍棒和一湊成4;如果餘2,剩餘的兩個湊成1就行;餘零,剛好全是7

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    freopen("auxiliary.in","r",stdin);
    freopen("auxiliary.out","w",stdout);
    int n;
    scanf("%d",&n);
    if(n==2){
        printf("1\n");
        return 0;
    }
    int t=n%3;
    long long ans=0;
    if(t==1){
        ans=(long long)((n/3-1)*7+4);
    }
    else if(t==0) ans=(long long)((n/3)*7);
    else ans=(long long)((n/3)*7+1);
    printf("%lld\n",ans);
    return 0;
}