关于测试点一的问题

回复帖子

@WFcong 2018-07-12 01:59 回复

1点24分46秒提交的和1点21分33秒提交的代码一样的,然而一个却AC,一个却数据点1WA,是测试点有问题还是我的电脑问题...我看了代码都一样,我也没怎么修改...

@WFcong 2018-07-12 12:14 回复

@sxyugao 中间的是改过的 图中第一和第五是一样的 我复制源代码出去看过了。第二是加了一个优化头文件发现没有,第三是复制过了一次,第四是点了O2优化过的

@WFcong 2018-07-12 12:16 回复

代码如下...

#define _CRT_SBCVRE_NO_ DEPRECATE
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int max = 0 ;
    int l,m,n;
    cin >> l >> n >> m;
    int arr[n+2];
    for(int i=1; i<=n; i++)
        cin >> arr[i];
    arr[n+1] = l;
    while(arr[0]<=arr[n+1])
    {
        int mid = (arr[0]+arr[n+1]) >> 1;
        int step = 0,last = 0;
        for(int i=1; i<=n; i++)
        {
            if(arr[i]-last < mid)
                step++;
            else
                last = arr[i];  
        }
        if(step <= m)
        {
            arr[0] = mid + 1;
            max = mid;
        }
        else
            arr[n+1] = mid - 1;
    }   
    cout << max;

    return 0;
} 
@WFcong 2018-07-12 14:07 回复

@sxyugao
数组大小不是开输的n个石头+两个石头代表头尾吗

@WFcong 2018-07-13 00:00 回复

@sxyugao 嗯,确实是动态数组的问题,我试了几下不开动态都是过的