Guest User

Untitled

a guest
Jan 17th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. void displayVector (vector<long long int> v) {
  7.     for(int i = 0; i < v.size(); ++i) {
  8.         cout << v[i] << " ";
  9.     }
  10.     cout << endl;
  11. }
  12.  
  13. bool customCompare(int sm, int bm, int em, int sc, int bc, int ec) {
  14.     if (sc > sm) return true;
  15.     if (sc < sm) return false;
  16.     if ((ec - bc) > (em - bm)) return true;
  17.     return false;
  18. }
  19.  
  20. int main()
  21. {
  22.     vector<long long int> v;
  23.  
  24.  
  25.     v.push_back(1967513926);
  26.     v.push_back(1540383426);
  27.     v.push_back(-1303455736);
  28.     v.push_back(-521595368 );
  29.    /* v.push_back(2);
  30.     v.push_back(3);
  31.     v.push_back(-7);
  32.     v.push_back(1);
  33.     v.push_back(2);
  34.     v.push_back(5);
  35.     v.push_back(2);
  36.     v.push_back(3);*/
  37.  
  38.     displayVector(v);
  39.  
  40.     vector<long long int> res;
  41.  
  42.     long long int sm = -1, bm = 0, em = 0;
  43.     long long int sc = 0, bc = 0, ec = 0;
  44.     int i = 0;
  45.  
  46.     while (i < v.size()) {
  47.         bc = i;
  48.         ec = i;
  49.         sc = 0;
  50.  
  51.         while(v[i] >= 0 && i < v.size()) {
  52.             sc += v[i];
  53.             ++ec;
  54.             ++i;
  55.         }
  56.  
  57.         --ec;
  58.  
  59.         if (customCompare(sm, bm, em, sc, bc, ec)) {
  60.             sm = sc; bm = bc; em = ec;
  61.         }
  62.  
  63.         while(v[i] < 0 && i < v.size()) {
  64.             ++i;
  65.         }
  66.     }
  67.  
  68.     for (int i = bm; i <= em; ++i) {
  69.         res.push_back(v[i]);
  70.     }
  71.  
  72.     displayVector(res);
  73.  
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment