Guest User

Untitled

a guest
Jul 26th, 2017
2,014
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. /*
  2. AUTHOR:hruday pabbisetty
  3. NIT ROURKElA
  4. */
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. #define opt ios_base::sync_with_stdio(0)
  8. #define lli long long int
  9. #define ulli unsigned long long int
  10. #define I int
  11. #define S string
  12. #define D double
  13. #define rep(i,a,b) for(i=a;i<b;i++)
  14. #define repr(i,a,b) for(i=a;i>b;i--)
  15. #define in(n) scanf("%lld",&n)
  16. #define in2(a,b) scanf("%lld %lld",&a,&b)
  17. #define in3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
  18. #define out(n) printf("%lld",n)
  19. #define inu(a) scanf("%lld",&a)
  20. #define outu(a) printf("%llu",a)
  21. #define ins(s) scanf("%s",&s)
  22. #define outs(s) printf("%s",s)
  23. #define nl printf("\n")
  24. #define mod 1000000007
  25. #define inf 1000000000
  26. typedef long long ll;
  27. typedef pair<lli, lli> plli;
  28. typedef vector<lli> vlli;
  29. typedef vector<ulli> vulli;
  30. typedef vector<ll> vll;
  31. typedef vector<string> vs;
  32. typedef vector<plli> vplli;
  33. #define MM(a,x) memset(a,x,sizeof(a));
  34. #define ALL(x) (x).begin(), (x).end()
  35. #define P(x) cerr<<"{"#x<<" = "<<(x)<<"}"<<endl;
  36. #define P2(x,y) cerr<<"{"#x" = "<<(x)<<", "#y" = "<<(y)<<"}"<<endl;
  37. #define P3(x,y,z) cerr<<"{"#x" = "<<(x)<<", "#y" = "<<(y)<<", "#z" = "<<(z)<<"}"<<endl;
  38. #define P4(x,y,z,w)cerr<<"{"#x" = "<<(x)<<", "#y" = "<<(y)<<", "#z" = "<<(z)<<", "#w" = "<<(w)<<"}"<<endl;
  39. #define PP(x,i) cerr<<"{"#x"["<<i<<"] = "<<x[i]<<"}"<<endl;
  40. #define TM(a,b) cerr<<"{"#a" -> "#b": "<<1000*(b-a)/CLOCKS_PER_SEC<<"ms}\n";
  41. #define UN(v) sort(ALL(v)), v.resize(unique(ALL(v))-v.begin())
  42. #define mp make_pair
  43. #define pb push_back
  44. #define f first
  45. #define s second
  46. #define sz() size()
  47. lli power(lli a,lli b)
  48. {
  49. lli value;
  50. if(b==0)
  51. {
  52. return 1;
  53. }
  54. else if(b%2==0)
  55. {
  56. value=power(a,b/2)%mod;
  57. return(value*value)%mod;
  58. }
  59. else
  60. {
  61. value=power(a,b/2)%mod;
  62. return ((a*value)%mod*(value))%mod;
  63. }
  64. }
  65. lli n,a[10004],k;
  66. lli f(lli val)
  67. {
  68. lli cnt=1,temp=0,i;
  69. rep(i,0,n)
  70. {
  71. if(a[i]>val)
  72. {
  73. return 0;
  74. }
  75. temp+=a[i];
  76. if(temp>val)
  77. {
  78. cnt++;
  79. temp=a[i];
  80. }
  81. }
  82. if(cnt<=k)
  83. {
  84. return 1;
  85. }
  86. return 0;
  87. }
  88. int main()
  89. {
  90. opt;
  91. lli z,t;
  92. cin>>t;
  93. rep(z,1,1+t)
  94. {
  95. cin>>n;
  96. cin>>k;
  97. lli i,sum=0,l=inf,r;
  98. rep(i,0,n)
  99. {
  100. cin>>a[i];
  101. sum+=a[i];
  102. l=min(l,a[i]);
  103. }
  104. lli ans=inf;
  105. r=sum;
  106. while(l<=r)
  107. {
  108. lli mid=(l+r)/2;
  109. if(f(mid))
  110. {
  111. ans=min(ans,mid);
  112. r=mid-1;
  113. }
  114. else
  115. {
  116. l=mid+1;
  117. }
  118. }
  119. cout<<"Case "<<z<<": "<<ans<<endl;
  120. }
  121. }
Add Comment
Please, Sign In to add comment