Cod sursa(job #2860113)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 2 martie 2022 10:35:20
Problema Bilute Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#define MAX 30001

int c[ MAX + 1 ], l[ MAX + 1 ];
int a[ MAX + 1 ], poz = 1;
int v[ MAX + 1 ];
int n;

int main() 
{	
    FILE *fin = fopen( "bilute.in", "r" );
	fscanf( fin, "%d", &n );
	
	a[ 0 ] = 0;
	for( int i = 1; i <= n; ++i ) { 
		fscanf( fin, "%d%d", &c[ i ], &l[ i ] );
		a[ i ] = a[ i - 1 ] + c[ i ];
	}
    fclose( fin );
	
	for( int i = 2; i <= n; ++i )
		v[ 1 ] += ( i - 1 ) * c[ i ] + c[ i ] * l[ i ];
	
	for( int i = 2; i <= n; ++i )
		v[ i ] = v[ i - 1 ] - c[ i ] * l[ i ] + c[ i - 1 ] * l[ i - 1 ] + 2 * a[ i - 1 ] - a[ n ];
	
	for( int i = 1; i <= n; ++i )
		if( v[ i ] < v[ poz ] )
			poz = i;
	
    FILE *fout = fopen( "bilute.out", "w" );
	fprintf( fout, "%d %d\n", poz, v[ poz ] );
	fclose( fout );
	return 0;
	
}