# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
314838 | 2020-10-21T13:04:09 Z | blue | Job Scheduling (IOI19_job) | C++17 | 0 ms | 0 KB |
#include "job.h" #include <vector> #include <algorithm> using namespace std; struct job { int u; int d; }; bool operator < (job A, job B) { return A.d*B.u < B.d*A.u; } long long scheduling_cost(vector<int> p, vector<int> u, vector<int> d) { long long res = 0; int n = p.size(); res += u[0] * d[0]; job J[n-1]; for(int i = 1; i < n; i++) J[i-1] = job{u[i], d[i]}; sort(J, J+n-1); long long t = d[i]; for(int i = 0; i < n; i++) { t += J[i].d; res += t * J[i].u; } return res; }