《算法》枚举算法作业(一)

时间限制 1000 ms
内存限制 64 MB
题目描述
有一条河,河中间有一些石头,已知石头的数量和相邻两块石头之间的距离。现在可以移除一些石头,问最多移除m块石头后(首尾两块石头不可以移除),相邻两块石头之间的距离的最小值最大是多少。

输入数据
第一行输入两个数字,n(2<=n<=1000)为石头的个数,m(0<=m<=n-2)为可移除的石头数目 随后n-1个数字,表示顺序和相邻两块石头的距离d(d<=1000)

输出数据
输出最小距离的最大值

样例输入
4 1
1 2 3
样例输出
3

#include
#include
#include 
using namespace std;
bool binarySearch(int mid, int b[], int m, int n);
int main(){
    int m, n;
    int *a,*b;
    cin >> n >> m;
    a = (int *)malloc(sizeof(int) * (n+1)); // 分配
    b = (int *)malloc(sizeof(int) * (n+1 )); // 分配
    for (int i = 0; i> a[i]; // 键盘输入 n-1 个数
        b[i] = a[i] + b[i - 1];
    }
    

    int left = 0, right = b[n], mid;
    while (left m){
                return true;
            }
            if (i > n){
                if (j == 1){
                    return true;
                }
                else{
                    return false;
                }
            }   
            dis = b[i] - b[j];
        }
        j = i;
        i++;
    }

    return false;
}

你可能感兴趣的:(《算法》枚举算法作业(一))