CAR - Lập lịch sửa chữa ô tô
Tác giả: happyboy99x
Ngôn ngữ: C++
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAX 10000+5
typedef struct {
int a, b, i; float x;
} car;
bool cmp( const car & a, const car & b ) {
return a.x < b.x;
}
car v[MAX];
int n;
int main() {
int n; scanf( "%d", &n );
for( int i = 0; i < n; ++i ) scanf( "%d", &v[i].a );
for( int i = 0; i < n; ++i ) {
scanf( "%d", &v[i].b );
v[i].x = (float) v[i].a / v[i].b;
v[i].i = i+1;
}
sort(v, v+n, cmp);
long long money = 0, d = 0;
for( int i = n-1; i >= 0; --i ) {
d += v[i].b;
money += d * v[i].a;
}
printf( "%lld\n", money );
for( int i = n-1; i >= 0; --i ) printf( "%d ", v[i].i );
putchar('\n');
return 0;
}