Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. /*
  2. ID: apkessl1
  3. PROG: feed
  4. LANG: C++
  5. */
  6. #include <cstdio>
  7. #include <cstring>
  8. #include <cstdlib>
  9. #include <algorithm>
  10. #include <vector>
  11. using namespace std;
  12.  
  13. FILE *fin = fopen ("feed.in", "r"), *fout = fopen ("feed.out", "w");
  14.  
  15. const int MAXN = 505;
  16. const long long INFTY = (1LL << 60);
  17. typedef long long ll;
  18.  
  19. int N, K;
  20. ll E, X [MAXN], feed [MAXN], price [MAXN], best, p, total = 0;
  21.  
  22. int main ()
  23. {
  24.     fscanf (fin, "%d %lld %d", &K, &E, &N);
  25.  
  26.     for (int i = 0; i < N; i++)
  27.         fscanf (fin, "%lld %lld %lld", X + i, feed + i, price + i), X [i] = E - X [i];
  28.  
  29.     for (int k = 1; k <= K; k++)
  30.     {
  31.         best = INFTY; p = 0;
  32.  
  33.         for (int i = 0; i < N; i++)
  34.             if (feed [i] && price [i] + X [i] < best)
  35.                 best = price [i] + X [i], p = i;
  36.  
  37.         total += best; feed [p]--;
  38.  
  39.         for (int i = 0; i < N; i++)
  40.             price [i] += (X [p] > X [i]) ? 2 * X [i] : 2 * X [p];
  41.     }
  42.  
  43.     fprintf (fout, "%lld\n", total);
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement