Cod sursa(job #2100644)

Utilizator DruffbaumPopescu Vlad Druffbaum Data 5 ianuarie 2018 22:45:09
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>

const int MAXN = 1e3;
#define MAXC 10

int s[MAXN], p[MAXC][MAXC][MAXC];

int main() {
  int n, i, t1, t2, t3, per;
  FILE *f = fopen("koba.in", "r");
  fscanf(f, "%d%d%d%d", &n, &t1, &t2, &t3);
  fclose(f);
  t1 %= 10;
  t2 %= 10;
  t3 %= 10;
  s[1] = t1;
  s[2] = s[1] + t2;
  s[3] = s[2] + t3;
  p[t1][t2][t3] = 3;
  per = 0;
  i = 4;
  while (!per) {
    s[i] = (t3 + t1 * t2) % 10;
    t1 = t2;    
    t2 = t3;
    t3 = s[i];
    s[i] += s[i - 1];
    if (p[t1][t2][t3]) {
      per = p[t1][t2][t3];
    }
    p[t1][t2][t3] = i++;
  }
  f = fopen("koba.out", "w");
  n -= per;
  --i;
  fprintf(f, "%d\n", s[per] + n / (i - per) * (s[i] - s[per]) + s[per + n % (i - per)] - s[per]);
  fclose(f);
  return 0;
}