7-7 装箱问题 (20 分)


 开两个数组,一个数组存物品的数量,一个数组代表箱子,表示第i个箱子的已经存的容量。

#include 
using namespace std;
const int N = 1010;
int q[N], a[N];
int n;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> q[i];
    
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
        {
            if(a[j] + q[i] <= 100)
            {
                a[j] += q[i];
                cout << q[i] << ' ' << j << endl;
                break;
            }
        }
    while(a[n] == 0) n--;
    
    cout << n << endl;
    
    return 0;
}