Mai intai trebuie sa te autentifici.
Cod sursa(job #2387740)
Utilizator | Data | 25 martie 2019 10:20:14 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 30 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.86 kb |
#include <bits/stdc++.h>
using namespace std;
vector <int> v;
vector <int> maxi;
vector <pair<int,int>> poz;
int main()
{
ifstream fin("ssm.in");
ofstream fout("ssm.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,aa;
for (i=0;i<v.size();i++) {
sum=0;
a=0;
for (k=i;k<v.size();k++) {
sum+=v[k];
if(sum>a) {
a=sum;
aa=k;
}
}
maxi.push_back(a);
poz.push_back(make_pair(i,aa));
}
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();
}