Pagini recente » Cod sursa (job #996036) | Cod sursa (job #1131134) | Istoria paginii runda/piscot1024 | Cod sursa (job #858313) | Cod sursa (job #1005859)
/* O(n^2)
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n, x[100000], st, dr, poz, pozf;
int main(){
f>>n;
for(int i=0; i<n; ++i) f>>x[i];
int Smax=x[0];
for(st=0; st<n; st++)
for(int sum=0, dr=st; dr<n; dr++){
sum+=x[dr];
if(sum>Smax) Smax=sum, poz=st, pozf=dr;
}
g<<Smax<<" "<<poz+1<<" "<<pozf+1<<'\n';
return 0;
}
*/
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n, x[6000000], Smax, Sum, st, poz, pozf, i;
int main(){
f>>n;
for(int j=0; j<n; ++j)
f>>x[j];
for(Smax=Sum=x[0], st=poz=0, pozf=i=1; i<=n; ++i)
if(Sum<0)
Sum=x[i], st=i;
else{
Sum+=x[i];
if(Smax<Sum)
Smax=Sum, poz=st, pozf=i;
}
if(pozf==n) pozf--;
g<<Smax<<" "<<poz+1<<" "<<pozf+1<<'\n';
return 0;
}