其他测试点都过了,都是最后一个点RE了
#include <bits/stdc++.h>
using namespace std;
int n;
struct machine
{
int a;
int b;
int data;
};
machine p[5050];
bool cmp(machine i, machine j)
{
if(i.a >= i.b && j.a <= j.b)
return false;
else if(i.a <= i.b && j.a >= j.b)
return true;
else if(i.a < i.b && i.a > j.a)
return false;
else if(i.a < i.b && i.a <= j.a)
return true;
else if(i.a > i.b && i.b < j.b)
return false;
else
return true;
}
int main()
{
cin >> n;
for(int i = 1; i <= n; i = i + 1)
{
cin >> p[i].a;
p[i].data = i;
}
for(int i = 1; i <= n; i = i + 1)
cin >> p[i].b;
sort(p + 1, p + 1 + n, cmp);
int ans = 0;
int am = 1, bm = 0;
while(true)
{
if(p[am].a > 0)
p[am].a -= 1;
if(p[am].a == 0)
am += 1;
if(p[bm].b > 0)
p[bm].b -= 1;
if(p[bm].b == 0 && bm < am - 1)
bm += 1;
ans += 1;
if(bm >= n && p[bm].b == 0)
break;
}
cout << ans << endl;
for(int i = 1; i <= n; i = i + 1)
cout << p[i].data << " ";
return 0;
}