第四个wa,怎么回事?
(二分和正常写的不太一样)
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n,m,b,d,p[100086];
int divide(int x,int y)
{
b=0;
d=1;
int z=(x+y)/2;
for(int i=1;i<=n;i++)
{
if(b+p[i]>=z)
{
b=p[i];
d++;
}
else
b+=p[i];
}
if(x==y-1)
{
return x;
}
else if(d>m)
divide(z,y);
else if(d<=m)
divide(x,z);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>p[i];
}
int ans=divide(1,1000000001);
cout<<ans;
return 0;
}