// Standard Header einbinden 
#include <stdio.h> 
#include <stdlib.h>

int main (int argc, char **argv) {
	int *feld; 
   	int n = 10;
	int sum = 0;
	int max; 
	int si, sj,i,j,k;
	FILE *fp; 

	if (argc != 2) {
		printf("Usage: %s filename\n",argv[0]); 
		return -2; 
	}
	if (! (fp = fopen (argv[1],"r")) ) {
		printf("Error Opening file\n"); 
		return -1; 
	}
	fscanf(fp, "%d", &n); 
	feld = (int *) malloc(sizeof(int) * n); 
	printf("Read %d values...", n); 
	for ( i = 0; i < n && !feof(fp); i++){
		fscanf(fp,"%d",&feld[i]); 
	}
	if ( i != n) { printf("Could not read all values\n"); return -3; }
	printf("done.\n"); 
	fclose(fp); 

	max = feld[0]; 
    	// durchlaufen alle Kombinationen von (i,j)
	for (i = 0; i < n; i++){
		sum = 0;
		for (j = i; j < n; j++)	{
		    // Verbesserung: Falls nur j um 1 erhoeht wurde, 
		    // wird nur das zusaetzlich Element feld[j] zur 
		    // bisherigen Summe addiert
		    sum = sum + feld [j];
	            if (sum > max) {
        	            max = sum;
                	    si = i;
                    	    sj = j;
		    }
		}
	 }
    
	printf("max S_ij: %d \n",max);
    	printf("->  i = %d to  j = %d \n",si,sj); 
	free(feld); 

	return 0;
}
