Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ID: apkessl1
- PROG: feed
- LANG: C++
- */
- #include <cstdio>
- #include <cstring>
- #include <cstdlib>
- #include <algorithm>
- #include <vector>
- using namespace std;
- FILE *fin = fopen ("feed.in", "r"), *fout = fopen ("feed.out", "w");
- const int MAXN = 505;
- const long long INFTY = (1LL << 60);
- typedef long long ll;
- int N, K;
- ll E, X [MAXN], feed [MAXN], price [MAXN], best, p, total = 0;
- int main ()
- {
- fscanf (fin, "%d %lld %d", &K, &E, &N);
- for (int i = 0; i < N; i++)
- fscanf (fin, "%lld %lld %lld", X + i, feed + i, price + i), X [i] = E - X [i];
- for (int k = 1; k <= K; k++)
- {
- best = INFTY; p = 0;
- for (int i = 0; i < N; i++)
- if (feed [i] && price [i] + X [i] < best)
- best = price [i] + X [i], p = i;
- total += best; feed [p]--;
- for (int i = 0; i < N; i++)
- price [i] += (X [p] > X [i]) ? 2 * X [i] : 2 * X [p];
- }
- fprintf (fout, "%lld\n", total);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement