Cod sursa(job #2387736)

Utilizator AricolSurdu Adrian Aricol Data 25 martie 2019 10:12:46
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>

using namespace std;

vector <int> v;
vector <int> da;
vector <int> maxi;
vector <pair<int,int>> ce;
vector <pair<int,int>> poz;

int main()
{
    ifstream fin("suma.in");
    ofstream fout("suma.out");
    uint64_t n,x,i;
    fin>>n;
    for (i=0;i<n;i++) {
        fin>>x;
        v.push_back(x);
    }

    uint64_t k,sum,a;
    for (i=0;i<v.size();i++) {
        sum=0;
        for (k=i;k<v.size();k++) {
            sum+=v[k];
            da.push_back(sum);
            ce.push_back(make_pair(i,k));
        }
        a=*max_element(da.begin(),da.end());
        maxi.push_back(a);
        vector <int>::iterator it = find(da.begin(),da.end(),a);
        uint64_t asd=distance(da.begin(),it);
        poz.push_back(make_pair(ce[asd].first,ce[asd].second));
        da.clear();
        ce.clear();
    }
    a=*max_element(maxi.begin(),maxi.end());
    vector <int>::iterator it = find(maxi.begin(),maxi.end(),a);
    uint64_t asd=distance(maxi.begin(),it);
    fout<<a<<" "<<poz[asd].first+1<<" "<<poz[asd].second+1;
    fin.close();
    fout.close();
}