#include <iostream>
#include <algorithm>
using namespace std;
#define M 100
struct aaa
{
int n1t, n2t;
int num;
}a[M];
int n1et[M], n2et[M]; //当前机器在n1 n2的结束时间
bool cmp(aaa a, aaa b)
{
if (a.n1t < a.n2t&&b.n1t < b.n2t) return a.n1t < b.n1t;
else return a.n2t > b.n2t;
}
int main()
{
int n;
while (cout<<"作业数:",cin >> n)
{
cout << "在n1,n2作业时间:";
for (int i = 1; i <=n; i++)
{
cin >> a[i].n1t >> a[i].n2t;
a[i].num = i ;
}
sort(a+1, a + n+1, cmp);
for (int i = 1; i <= n; i++)
{
n1et[i] = n1et[i - 1] + a[i].n1t;
int m = max(n1et[i], n2et[i - 1]);
n2et[i] = m + a[i].n2t;
}
cout << "作业顺序:" ;
for (int i = 1; i <= n; i++) cout << a[i].num << " ";
cout << endl;
cout << "完成作业时间和:";
for (int i = 1; i <= n; i++) n2et[i] += n2et[i - 1];
cout << n2et[n] << endl;
}
}