Pagini recente » Cod sursa (job #2572678) | Cod sursa (job #2662870) | Cod sursa (job #1061365) | Cod sursa (job #216737) | Cod sursa (job #3187809)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
int n;
int v[6000005];
ifstream fin("ssm.in");
ofstream fout("ssm.out");
//A megoldas valtozo az egy olyan valtozo amely megjeloli a reszsorozatok osszegeit.
//A kezdet valtozo az adott poziciot jeloli.A kezdetmax es veglegesmax valtozok
//megjelolik a maximalis reszsorozat legelso es legutolso poziciojat.(vaggyoi
// a maximalis reszsorozat honnan indul es honnan zarul be).A fuggveny vigigjarja
// a v tombbot es megkeresi a feladat kert elemeit(es ki is iratja azokat).Ha a
//megoldas negativ akkor felveszi a tomb i edik elemet illetve a kezdet megkapja
//a i edik poziciot,kullonben a megoldashoz hozzaadja a tomb i edik elemet.
//Amennyiben a maximum kissebb mint a megoldas, akkor a max felvesszi a megoldast
//es a kezdetmax es veglegesmax sorra felvesszi az i edik poziciot es a kezdet
// valtozo poziciojat
void f(int n,int v[]){
int megoldas=-99999999,kezdet=0,max=INT_MIN,veglegesmax=kezdet,kezdetmax=kezdet;
for (int i=1;i<=n;i++) {
if (megoldas< 0) {
megoldas=v[i];
kezdet=i;
}
else megoldas+=v[i];
if (max<megoldas) {
max=megoldas;
veglegesmax=i;
kezdetmax=kezdet;
}
}
fout<<max<<" "<<kezdetmax<<" "<<veglegesmax;
}
int main() {
fin>>n;
for (int i = 1; i <= n; i++) {
fin>>v[i];
}
f(n,v);
return 0;
}