Untitled
unknown
c_cpp
2 years ago
1.7 kB
4
Indexable
#include <bits/stdc++.h> using namespace std; int arra[11]; struct S { char id; int ending; int duration; int payment; }; bool comp(S item1, S item2) { return ((item1.payment / item1.duration) >= (item2.payment / item2.duration)); } void fillUp(int arra[], int y, int end) { for (int i = y; i <= end; i++) arra[i] = 1; } int selecion(S V[], int n, int arra[]) { int profit = 0; int count = 0; int y; fillUp(arra, V[0].ending - V[0].duration + 1, V[0].ending); profit += V[0].payment; cout << V[0].id << endl; for (int i = 1; i < n; i++) { count = 0; for (int hour = V[i].ending; hour >= 1; hour--) { if (arra[hour] == -1) { count++; if (count == V[i].duration) { y = hour; break; } } } if (count == V[i].duration) { cout << V[i].id << endl; profit += V[i].payment; fillUp(arra, y, V[i].ending); } } return profit; } int main() { int n; cin >> n; S ara[n]; memset(arra, -1, sizeof(arra)); for (int i = 0; i < n; i++) { cout << "task " << i + 1 << ": "; cin >> ara[i].id; // getchar(); cin >> ara[i].ending >> ara[i].duration >> ara[i].payment; } sort(ara, ara + n, comp); cout << endl << endl; for (S x : ara) cout << x.id << " " << x.ending << " " << x.duration << " " << x.payment << endl; cout << endl << endl; int X = selecion(ara, n, arra); cout << X; }
Editor is loading...