问题描述:
一共有n组人,每一车能拉走m个人,如果m = 4, 第一组有2个人,第二组有2个人,那么可以一车带走;如果第一组有2人第二组有3人,那么只能拉走两人,这三个人要和下一组比较。
题目链接:CodeForces NO.435A
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<stack>
#include<cstring>
#include<set>
#define INF 0x3f3f3f3f
#define MAX 1000
#define PI 3.1415926
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
int ans = 0, b = 0;
int a[m];
for(int i = 0; i < m; i++)
cin >> a[i];
//核心代码
for(int i = 0; i < m; i++)
{
if(b + a[i] == n)
{
ans++;
b = 0;
}
else if(b + a[i] > n)
{
ans++;
b = a[i];
if(b == n)
{
ans++;
b = 0;
}
}
else if(b + a[i] < n)
{
b += a[i];
}
}
//非常重要!!看看是否还剩下人没拉走
if(b != 0)
{
ans++;
}
cout << ans << endl;
return 0;
}