Cod sursa(job #2026322)

Utilizator eilerGabriel-Ciprian Stanciu eiler Data 24 septembrie 2017 12:06:57
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;

int N, L, S[10001];

int lenC(int p);

int lenB(int p){
	if (S[p]==2)
		return lenB(p+1);

	if (S[p]==1 && S[p+2]==3)
		return lenC(p+4);

	return -1;
}

int lenC(int p){
	if (S[p]==2)
		return p;

	if (S[p]==3)
		return lenC(lenB(p+1));

	if (S[p]==1 && S[p+1]==2)
		return p+2;

	return -1;
}

int main(){
	int i, j;

	ifstream fin ("perle.in");
	fin >> N;

	ofstream fout ("perle.out");
	for (i=0; i<N; i++){
		fin >> L;
		for (j=0; j<L; j++)
			fin >> S[j];

		if (L==1 || lenB(0)==L-1 || lenC(0)==L-1)
			fout << "1\n";
		else
			fout << "0\n";
	}
	fout.close();

	fin.close();

	return 0;
}