Pagini recente » Cod sursa (job #2303508) | Cod sursa (job #2806991) | Cod sursa (job #2267571) | Cod sursa (job #1072233) | Cod sursa (job #52329)
Cod sursa(job #52329)
#include <stdio.h>
#include <string.h>
FILE *in = fopen("perle.in", "r"), *out = fopen("perle.out", "w");
int n;
int a[11][10001];
int t=0;
void verifica(int i,int poz,char * s)
{
int k=0;
if (s[0]=='b')
{
if (poz<a[i][0])
{
switch (a[i][poz])
{
case 2:
verifica(i,poz+1,"b");
break;
case 1:
if (poz+4<=a[i][0] && a[i][poz+2]==3) verifica(i,poz+4,"c");
break;
}
}
}
else
if (s[0]=='c')
{
if (poz==a[i][0] && a[i][poz]==2) t=1;
else
if (poz+2<=a[i][0])
{
switch (a[i][poz])
{
case 1:
if (a[i][0]==poz+2 && a[i][poz+1]==2) t=1;
break;
case 3:
verifica(i,poz+1,"bc");
break;
}
}
}
}
int main()
{
fscanf(in, "%d", &n);
for ( int i = 0; i < n; ++i )
{
fscanf(in, "%d", &a[i][0]);
for ( int j = 1; j <=a[i][0]; ++j )
fscanf(in, "%d", &a[i][j]);
}
printf("\n**************\n");
for ( int i = 0; i < n; ++i )
{
for ( int j = 1; j <=a[i][0]; ++j )
printf("%d ",a[i][j]);
printf("\n");
}
printf("**************\n");
for ( int i = 0; i < n; ++i )
{
t=0;
if(a[i][0]==1)
{
fprintf(out, "%d\n",1);
printf("\nrezultat %d\n",1);
}
else
{
t=0;
switch (a[i][1])
{
case 2:
verifica(i,2,"b");
break;
case 1:
if (a[i][0]==3 && a[i][2]==2) t=1;
else
if (a[i][0]>3 && a[i][3]==3)
{
verifica(i,5,"c");
}
break;
case 3:
verifica(i,2,"bc");
break;
}
fprintf(out, "%d\n",t);
printf("\nrezultat %d\n",t);
printf("*************\n");
}
}
return 0;
}