题目描述
小T暑假去叔叔的工厂体验生活。这天一共有N样物品需要小T把它们装入容量为S的一批箱子(共N个,从左到右依次编号1~N)中。
装箱的要求是:对每样物品,从左到右找到第一个可以还能够装下它的箱子中。
请模拟该装箱过程,并记录每件物品被放在了哪个箱子中。
输入格式
第一行两个正整数N和S。
第二行给出N个正整数Si,表示第i样物品的体积大小。
输出格式
一行N个整数,依次表示每件物品所在的箱子编号,空格隔开。
题目描述
小T暑假去叔叔的工厂体验生活。这天一共有N样物品需要小T把它们装入容量为S的一批箱子(共N个,从左到右依次编号1~N)中。
装箱的要求是:对每样物品,从左到右找到第一个可以还能够装下它的箱子中。
请模拟该装箱过程,并记录每件物品被放在了哪个箱子中。
输入格式
第一行两个正整数N和S。
第二行给出N个正整数Si,表示第i样物品的体积大小。
输出格式
一行N个整数,依次表示每件物品所在的箱子编号,空格隔开。
定义一个长度为N的数组,数组元素最大值为S。然后将N个 Si分别放到从0开始编号的箱子,如果箱子的当前空闲值大于Si,则放入,并减去Si值
#include <iostream>
using namespace std;
int main()
{
int N,S,box[200],i,t[200];
cin>>N>>S;
for(i=0;i<N;i++)
box[i] = S;
for(i=0;i<N;i++)
cin>>t[i];
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(t[i] <= box[j])
{
box[j] -= t[i];
cout<<j+1<<" ";
break;
}
}
}
return 0;
}