Pagini recente » Istoria paginii runda/teest | Cod sursa (job #2219069) | Borderou de evaluare (job #2687035) | Cod sursa (job #400414) | Cod sursa (job #1065032)
#include <stdio.h>
#include <limits.h>
int max( int a ) {
return a > 0 ? a : 0;
}
int main( ) {
FILE * fin, * fout;
fin = fopen( "ssm.in", "r" );
fout = fopen( "ssm.out", "w" );
int N;
fscanf( fin ,"%d", &N );
int maxbest = INT_MIN, minst = INT_MAX, mindr = INT_MAX;
int best = 0, st = 1, dr = 1;
int i;
for( i = 1; i <= N; i ++ ) {
int read;
fscanf( fin, "%d", &read );
if( best <= 0 ) {
best = read;
st = i;
dr = i;
} else {
best += read;
dr ++;
}
if( best > maxbest ) {
maxbest = best;
minst = st;
mindr = dr;
} else if( best == maxbest ) {
if( st < minst ) {
minst = st;
mindr = dr;
} else if( st == minst ) {
if( dr < mindr ) {
mindr = dr;
}
}
}
}
fprintf( fout, "%d %d %d", maxbest, minst, mindr );
fclose( fin );
fclose( fout );
}