// 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]; 
	// die ersten zwei Schleifen durchlaufen 
	// alle Kombinationen von (i,j)
	for (i = 0; i < n ; i++){
		for ( j = i; j < n; j++)	{
			// berechnet die Summe der 
			// Zahlen zwischen Indizee i und j
			sum = 0;
			for ( k = i; k <= j; k ++) {
	                	sum = sum + feld[k];
		        }
            		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;
}

