Cod sursa(job #2371040)

Utilizator alex.cojocaruAlex Cojocaru alex.cojocaru Data 6 martie 2019 15:17:10
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <stdio.h>

#define NMAX 10001

int s [ NMAX + 1 ] ;

using namespace std;

int a ( int pointer ) ;
int b ( int pointer ) ;
int c ( int pointer ) ;
int a (int pointer ) {
  return pointer + 1 ;
}

int b (int pointer) {
  if (s[pointer] == 2 )
    return b (pointer + 1) ;
  if (s[pointer] == 1 && s[pointer + 2] == 3 )
    return c (pointer + 4) ;
  return pointer + 10 ;
}

int c (int pointer) {
  if (s[pointer] == 2 )
    return pointer + 1 ;
  if (s[pointer] == 3 )
    return c(b(pointer+1)) ;
  if (s[pointer] == 1 && s[pointer+1] == 2 )
    return a(pointer+2) ;
  return pointer + 10 ;
}

int main() {

  FILE *fin, *fout ;
  fin = fopen ("perle.in", "r" ) ;
  fout = fopen ("perle.out", "w" ) ;
  int n, i, t ;
  fscanf (fin, "%d", &t) ;
  while (t > 0 ) {
    fscanf (fin, "%d", &n ) ;
    for (i = 1 ; i <= n ; i++ )
      fscanf (fin, "%d", &s[i] ) ;
    if (a(1) == n+1 || b(1) == n+1 || c(1) == n+1 )
      fprintf (fout, "1\n") ;
    else
      fprintf (fout, "0\n") ;
    t--;
  }
  return 0;
}