Cod sursa(job #2786283)

Utilizator LucaMihaiLM10Luca Ilie LucaMihaiLM10 Data 20 octombrie 2021 17:20:13
Problema Zombie Scor 80
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>

#define MAX_N 1000000

int v[MAX_N + 1], vraji[MAX_N + 1], last[MAX_N + 1];

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

int main() {
    FILE *fin, *fout;
    int d, n, k, i, j;

    fin = fopen( "zombie.in", "r" );
    fscanf( fin, "%d%d%d", &d, &n, &k );
    for ( i = 1; i <= n; i++ )
        fscanf( fin, "%d", &v[i] );
    fclose( fin );

    j = 1;
    for ( i = 1; i <= n; i++ ) {
        while ( v[j] + d - 1 <= v[i] )
            j++;
        last[i] = j - 1;
    }

    for ( i = 1; i <= n; i++ )
        vraji[i] = min( vraji[i - 1] + 1, vraji[last[i]] + k );

    fout = fopen( "zombie.out", "w" );
    fprintf( fout, "%d", vraji[n] );
    fclose( fout );


    return 0;
}