Cod sursa(job #137229)

Utilizator free_coderDancu Ioana free_coder Data 17 februarie 2008 10:26:53
Problema Koba Scor 100
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 5-8 Marime 1.01 kb
#include <stdio.h>

unsigned long int c[1001];
unsigned long int v[2001];
unsigned long int n,t1,t2,t3,t,i,j,next,last,sp,sc,st,ok,pic,rest;

int main(){
  FILE *f = fopen("koba.in","r");
  fscanf(f,"%d %d %d %d",&n,&t1,&t2,&t3);
  fclose(f);

  c[1]=t1%10;
  c[2]=t2%10;

  c[3]=((1*10+t1%10)*10+t2%10)*10+t3%10;
  t1=t1%10;
  t2=t2%10;
  t3=t3%10;

  v[c[3]]=1;

  for (i=4;i<=1001;i++) {
    last = c[i-1];
    t = (t3+t2*t1)%10;
    next =(1*100+last%100)*10+t;
    if (v[next]==1) {
      break;
    }
    c[i]=next;
    v[next]=1;
    t1=t2;t2=t3;t3=t;
  }
  i=i-1;

  sp = 0;  ok=0;
  sc = 0;
  for (j=1;j<=i;j++){
    if (c[j]==next) {
      ok=1;
      pic = j;
    }
    if (ok==1) {
      sc=sc+c[j]%10;

    } else {
      sp=sp+c[j]%10;
    }

  }

  st = sp;
  n = n-(pic-1);
  rest = n%(j-pic);
  st=st+(n/(j-pic))*sc;

  for (i=0;i<rest;i++)
    st = st + (c[pic+i]%10);
  FILE *g = fopen("koba.out","w");
  fprintf(g,"%d",st);
  fclose(g);
  return 0;
}