immuntasir

LightOJ 1048

May 29th, 2015
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #include <cstdio>
  2. int main() {
  3. int T, cs=1;
  4. scanf("%d", &T);
  5. for (cs=1; cs<=T;cs++) {
  6. int N, K, i;
  7. scanf("%d %d", &N, &K);
  8. int ara[N+1];
  9. for (i=0; i<=N; i++) scanf("%d", &ara[i]);
  10. int valid = 0;
  11.  
  12. int mid, low = 1;
  13. int high = 10000;
  14.  
  15. while (low <= high) {
  16. mid = low + (high-low)/2;
  17. int j=0, cnt =0, sum;
  18.  
  19. while (j<=N) {
  20. if (cnt > K) break;
  21. sum = 0;
  22. while (sum+ara[j] <= mid) {
  23. sum += ara[j];
  24. j++;
  25. }
  26. cnt++;
  27. }
  28. if (cnt > K) low = mid + 1;
  29. else if (cnt < K) high = mid -1 ;
  30. if (cnt==K) high = mid - 1;
  31. }
  32. printf("Case %d: %d\n", cs, mid);
  33.  
  34. int sum, j=0,cnt = 0;
  35. while (j<=N) {
  36. if (cnt>K) break;
  37. sum = 0;
  38. while (sum+ara[j] <= mid) {
  39. sum += ara[j];
  40. j++;
  41. }
  42. cnt++;
  43. printf("%d\n", sum);
  44. }
  45. }
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment