Cod sursa(job #266689)

Utilizator amadaeusLucian Boca amadaeus Data 25 februarie 2009 23:36:15
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.27 kb
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <set>
#include <vector>

#define FIN "algsort.in"
#define FOUT "algsort.out"
#define FOK "algsort.ok"

using namespace std;

int N;
double gamma = (( 1ll << 31 ) - 1) / 500000.0;

void result(char msg[], int p) {
    fprintf( stderr, msg );
    fprintf( stdout, "%d", p );
    exit( 0 );
}

int main() {
    int i, x, y, Mx;
    char msg[256];
    FILE *f, *g;

    f = fopen( FOK, "r" );
    if( !f )
        result( "Fisier de intrare lipsa!", 0 );

    if( fscanf( f, "%d", &N ) != 1 )
        result( "Fisier de intrare corupt!", 0 );

    Mx = (int)(N * gamma) + 1;

    f = fopen( FOK, "r" );
    g = fopen( FOUT, "r" );

    if( !f )
        result( "Fisier .ok lipsa!", 0 );
    if( !g )
        result( "Fisier de iesire lipsa!", 0 );

    for( i = 1; i <= N; i++ ) {
        if( fscanf( f, "%d", &x ) != 1 )
            result( "Fisier .ok corupt!", 0 );

        if( fscanf( g, "%9d", &y ) != 1 )
            result( "Fisier de iesire corupt!", 0 );
        if( y < 0 || y > Mx )
            result( "Fisier de iesire corupt!", 0 );

        if( x != y )
            result( "Raspuns gresit!", 0 );
    }

    result( "Raspuns corect!", 5 );

    return 0;
}