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;
}

Download