Cod sursa(job #637107)

Utilizator sodamngoodSo Damn Good sodamngood Data 20 noiembrie 2011 12:00:29
Problema Zombie Scor 80
Compilator cpp Status done
Runda .com 2011 Marime 0.7 kb
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
#define maxn 1000010

int D, N, K;
int T[maxn], Din[maxn];

int main() {
    FILE *f1=fopen("zombie.in", "r"), *f2=fopen("zombie.out", "w");
    int i, j, p, q;

    fscanf(f1, "%d %d %d\n", &D, &N, &K);
    for(i=1; i<=N; i++) {
         fscanf(f1, "%d", &T[i]);
    }

    int p1 = N, p2 = N;

    for(i=N; i>=1; i--) {
         int lim1 = T[i];
         int lim2 = T[i] + D - 1;
         int nrm = 0;

         p1 = i;
         while(T[p2] > lim2) p2 --;

         Din[i] = min(1 + Din[i+1], K + Din[p2 + 1]);
    }

    fprintf(f2, "%d\n", Din[1]);

    fclose(f1); fclose(f2);
    return 0;
}