Advertisement
Guest User

Untitled

a guest
Apr 29th, 2018
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.17 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define FOR(i,a,b) for(int i=(a);i<(b);++i)
  4. #define FORD(i, a, b) for(int i = (a); i >= (b); --i)
  5. #define VAR(v, i) __typeof(i) v=(i)
  6. #define FORE(i, c) for(VAR(i, (c).begin()); i != (c).end(); ++i)
  7. #define all(v) (v).begin(),(v).end()
  8.  
  9. #define PII pair<int,int>
  10. #define mp make_pair
  11. #define st first
  12. #define nd second
  13. #define pb push_back
  14. #define lint long long int
  15. #define VI vector<int>
  16.  
  17. #define debug(x) {cerr <<#x <<" = " <<x <<endl; }
  18. #define debug2(x,y) {cerr <<#x <<" = " <<x << ", "<<#y<<" = "<< y <<endl; }
  19. #define debug3(x,y,z) {cerr <<#x <<" = " <<x << ", "<<#y<<" = "<< y << ", " << #z << " = " << z <<endl; }
  20. #define debugv(x) {{cerr <<#x <<" = "; FORE(itt, (x)) cerr <<*itt <<", "; cerr <<endl; }}
  21. #define debugt(t,n) {{cerr <<#t <<" = "; FOR(it,0,(n)) cerr <<t[it] <<", "; cerr <<endl; }}
  22.  
  23. #define make( x) int (x); scanf("%d",&(x));
  24. #define make2( x, y) int (x), (y); scanf("%d%d",&(x),&(y));
  25. #define make3(x, y, z) int (x), (y), (z); scanf("%d%d%d",&(x),&(y),&(z));
  26. #define make4(x, y, z, t) int (x), (y), (z), (t); scanf("%d%d%d%d",&(x),&(y),&(z),&(t));
  27. #define makev(v,n) VI (v); FOR(i,0,(n)) { make(a); (v).pb(a);}
  28. #define IOS ios_base::sync_with_stdio(0)
  29. #define HEAP priority_queue
  30.  
  31. #define read( x) scanf("%d",&(x));
  32. #define read2( x, y) scanf("%d%d",&(x),&(y));
  33. #define read3(x, y, z) scanf("%d%d%d",&(x),&(y),&(z));
  34. #define read4(x, y, z, t) scanf("%d%d%d%d",&(x),&(y),&(z),&(t));
  35. #define readv(v,n) FOR(i,0,(n)) { make(a); (v).pb(a);}
  36. #define jeb fflush(stdout)
  37.  
  38.  
  39. using namespace std;
  40.  
  41. #define max_n 100015
  42.  
  43. void solve() {
  44.     make2(n, l);
  45.     makev(v, l);
  46.     int ans = 0;
  47.     VI rs;
  48.     int zostalo = n;
  49.     FOR(i,0,l) {
  50.         zostalo -= v[i];
  51.         int q = (v[i]*100)/n;
  52.         int r = v[i]*100-q*n;
  53.         ans += q;
  54.         if (2*r < n) rs.pb(r);
  55.         else ans++;
  56.     }
  57.     int Q = 100/n;
  58.     int R = 100-n*Q;
  59.     sort(all(rs));
  60.     FOR(i,0,zostalo) {
  61.         if (rs.size() == 0) rs.pb(0);
  62.         if (rs.size() > 0) {
  63.             rs[rs.size() - 1] += R;
  64.             ans += Q;
  65.             if (rs.back()*2 >= n) {
  66.                 ans++;
  67.                 rs.pop_back();
  68.             }
  69.         }
  70.     }
  71.     printf("%d\n", ans);
  72. }
  73.  
  74.  
  75. int main() {
  76.     make(z);
  77.     FOR(test,1,z+1) {
  78.         printf("Case #%d: ", test);
  79.         solve();
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement