Pagini recente » Cod sursa (job #1573281) | Cod sursa (job #2586687) | Cod sursa (job #1556151) | Cod sursa (job #2582021) | Cod sursa (job #1743959)
# include <stdio.h>
# include <stdlib.h>
# define max( a, b ) ( a > b ? a : b )
# define MAX_M 100000
# define infinit 10000000
int max1[1 + MAX_M];
int max2[1 + MAX_M];
int main() {
FILE *fin = fopen( "orase.in", "r" ), *fout = fopen( "orase.out", "w" );
int m, n, i, d, l, max, maxc;
fscanf( fin, "%d%d", &m, &n );
for ( i = 1; i <= m; i ++ )
max1[i] = max2[i] = -infinit;
for ( i = 0; i < n; i ++ ) {
fscanf( fin, "%d%d", &d, &l );
if ( max1[d] <= l ) {
max2[d] = max1[d];
max1[d] = l;
} else if ( max2[d] < l )
max2[d] = l;
}
max = maxc = -infinit;
for ( i = 1; i <= m; i ++ ) {
maxc ++;
if ( max1[i] + max2[i] > max )
max = max1[i] + max2[i];
if ( max1[i] + maxc > max )
max = max1[i] + maxc;
if ( max1[i] > maxc )
maxc = max1[i];
}
fprintf( fout, "%d", max );
fclose( fin );
fclose( fout );
return 0;
}