Cod sursa(job #635337)

Utilizator blue_phoenixPosea Elena blue_phoenix Data 19 noiembrie 2011 10:33:04
Problema Zombie Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 1.22 kb
#include <stdio.h>
#define MAXIM 10005

int pozitie=MAXIM-1;
char buff[MAXIM];//citesc bucati de cate maxim 10005 caractere

void cit(int &nr){
    nr=0;
    while(buff[pozitie]<'0' || buff[pozitie]>'9')//cat timp nu e cifra, treci mai departe
        if (++pozitie==MAXIM){
            fread (buff,1,MAXIM,stdin);
            pozitie=0;
        }
    while('0'<=buff[pozitie] && buff[pozitie]<='9'){//cat timp e cifra
        nr=nr*10+buff[pozitie]-'0';
        if (++pozitie==MAXIM){
            fread (buff,1,MAXIM,stdin);
            pozitie=0;
        }
     }
}

int main(){
   int n,k,d;
   int i;
   freopen("zombie.in","r",stdin);
   freopen("zombie.out","w",stdout);
   cit(d);
   cit(n);
   cit(k);
   //fscanf(fin,"%d%d%d",&d,&n,&k);
   int t1,tc,x;
   long long chakra=0;
   //fscanf(fin,"%d",&t1);
   cit(t1);
   x=1;
   for(i=1;i<n;i++){
//      fscanf(fin,"%d",&tc);
       cit(tc);
      if(tc-t1>=d){//asta e intervalul
         //la chakra adaug minimuldintre x si k
         if(x<k)chakra+=x;
           else chakra+=k;
         t1=tc;
         x=1;
      }else{
         x++;
      }
   }
         //la chakra adaug minimuldintre x si k
         if(x<k)chakra+=x;
           else chakra+=k;

   printf("%lld\n",chakra);
return 0;
}