Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.59 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int tab[1000005];
  5. int n;
  6.  
  7. bool sprawdzanie(int y){
  8.     int a=1;
  9.     int b=0;
  10.     for(int i=0; i<n; i++){
  11.         if(y<tab[i]) return false;
  12.         if(b+tab[i]>y){
  13.             b=0;
  14.             a++;
  15.         }
  16.         b+=tab[i];
  17.     }
  18.     if(a<=y) {return true;}
  19.     else{ return false;}
  20.  
  21. }
  22.  
  23. int binarne(){
  24. int lo=0;
  25. int hi=1e9;
  26. int x;
  27.  
  28.     while(lo<=hi){
  29.     x=(lo+hi)/2;
  30.     if(sprawdzanie(x))hi=x-1;
  31.     else lo=x+1;
  32.     }
  33.     return lo;
  34. }
  35. int main()
  36. {
  37.  
  38.     cin>>n;
  39.     for(int i=0; i<n; i++){
  40.         scanf("%d",&tab[i]);
  41.     }
  42.     cout<<binarne();
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement