Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- void displayVector (vector<long long int> v) {
- for(int i = 0; i < v.size(); ++i) {
- cout << v[i] << " ";
- }
- cout << endl;
- }
- bool customCompare(int sm, int bm, int em, int sc, int bc, int ec) {
- if (sc > sm) return true;
- if (sc < sm) return false;
- if ((ec - bc) > (em - bm)) return true;
- return false;
- }
- int main()
- {
- vector<long long int> v;
- v.push_back(1967513926);
- v.push_back(1540383426);
- v.push_back(-1303455736);
- v.push_back(-521595368 );
- /* v.push_back(2);
- v.push_back(3);
- v.push_back(-7);
- v.push_back(1);
- v.push_back(2);
- v.push_back(5);
- v.push_back(2);
- v.push_back(3);*/
- displayVector(v);
- vector<long long int> res;
- long long int sm = -1, bm = 0, em = 0;
- long long int sc = 0, bc = 0, ec = 0;
- int i = 0;
- while (i < v.size()) {
- bc = i;
- ec = i;
- sc = 0;
- while(v[i] >= 0 && i < v.size()) {
- sc += v[i];
- ++ec;
- ++i;
- }
- --ec;
- if (customCompare(sm, bm, em, sc, bc, ec)) {
- sm = sc; bm = bc; em = ec;
- }
- while(v[i] < 0 && i < v.size()) {
- ++i;
- }
- }
- for (int i = bm; i <= em; ++i) {
- res.push_back(v[i]);
- }
- displayVector(res);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment