Pagini recente » IAP #2: Concurs pentru studenti | Cod sursa (job #267430)
Cod sursa(job #267430)
#include <stdio.h>
int v[100],S[100];
int n,i,max,begin,end;
// S[i] = vectorul de sume partiale
// complexitatea O(n)
int main(){
FILE *f = fopen("ssm.in", "r");
FILE *g = fopen("ssm.out", "w");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
S[1]=v[1];
begin=1;
end=1;
max=v[1];
for (i=2;i<=n;i++) {
if (S[i-1]+v[i] > v[i]) {
S[i]=S[i-1]+v[i];
if (S[i] > max) {
max=S[i];
end=i;
}
}
else {
S[i]=v[i];
if (S[i] > max) {
max=S[i];
begin=i;
end=i;
}
}
}
fprintf(g,"%d\n",max);
for (i=begin;i<=end;i++)
fprintf(g,"%d ",v[i]);
fclose(f);
fclose(g);
return 0;
}