c++ 平分石头

平分石头

题目描述

给你N颗石头,给出N(0 < N < 200),M( 0 < M < 10000),和N颗石头的质量,质量为不超过300的整数,问从中拿出若干块石头质量和与M最接近,输出石头的质量和。

输入

第一行输入两个整数N和M;

接下来N行,输入N颗石头的质量。

输出

输出最后的结果

样例输入

5 10
1
2
3
4
5

样例输出

10

AC代码

//
//  main.cpp
//  noip
//
//  Created by fengyanhua on 2019/8/31.
//  Copyright © 2019年 fengyanhua. All rights reserved.
//

#include 
using namespace std;
#define MAX 201
int deta,ans,t[MAX],a[MAX],s,m,n;
void dfs(int u,int s)// u表示要选择的数为a[u] s表示在选a[u]之前的所有数的和
{
    cout<n) return;//u>n表示选择的是这五个数以外的数 如a[6]
    if(s-m>deta) return;//s(超过10时)不是离m最近的数时不用再向前选数
    if(s+t[n]-t[u-1]

转载于:https://www.cnblogs.com/LJA001162/p/11345501.html

你可能感兴趣的:(c/c++)