#include<iostream>
using namespace std;
#define N 1000
int d[N];
int main()
{
int n,k,i,count,left;
while(cin>>n>>k)
{
for(i=1;i<=k+1;i++)
cin>>d[i];
for(i=1;i<=k+1;i++)
{
if(d[i]>n)
{
cout<<"No Solution!"<<endl;
return 0;
}
}
count=0;
left=n;
for(i=1;i<=k;i++)
{
left=left-d[i];
if(left<d[i+1])
{
left=n;
count++;
}
}
cout<<count<<endl;
}
return 0;
}
这个题目比较简单,放在此处是为了记录自己的做题结果
但是有个问题,就是怎样证明这个算法符合贪心规则呢?求大牛解释!