Cod sursa(job #2813386)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 6 decembrie 2021 15:32:49
Problema Orase Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <stdio.h>

#pragma GCC optimize("Ofast")
#pragma GCC optimize ("unroll-loops")

static inline int min( int a, int b ) {
    return ( a <= b ? a : b );
}

static inline int max( int a, int b ) {
    return ( a >= b ? a : b );
}

FILE *fin;

int poz, valBuff;
char buff[ ( 1 << 10 ) ];
char nextChar() {
    if( poz == valBuff ) {
        fread( buff, 1, valBuff, fin );
        poz = 0;
    }

    return buff[ poz++ ];
}

bool f[ 100 ];
int readInt() {
    int rez = 0;
    int ch;

    while( !f[ ch = nextChar() ] );
    do
        rez = rez * 10 + ch - '0';
    while( f[ ch = nextChar() ] );

    return rez;
}

///////////////////////////////////////////////////////////////////////


int main()
{
    f[ '0' ] = f[ '1' ] = f[ '2' ] = f[ '3' ] = f[ '4' ] = 1;
    f[ '6' ] = f[ '7' ] = f[ '8' ] = f[ '9' ] = f[ '5' ] = 1;
    valBuff = sizeof( buff );

    fin = fopen( "orase.in", "r" );
    fread( buff, 1, valBuff, fin );

    int d = readInt(), a;
    int n = readInt(), b, l;
    for( int i = 0; i < n; i++ ) {
        d = readInt();
        l = readInt();
        a = max( a, d + l );
        b = max( b, l - d );
    }

    FILE *fout = fopen( "orase.out", "w" );
    fprintf( fout, "%d\n", a + b );
    fclose( fout );
    return 0;
}