Pagini recente » Cod sursa (job #235018) | Cod sursa (job #237323) | Cod sursa (job #437783) | Cod sursa (job #2322482) | Cod sursa (job #53595)
Cod sursa(job #53595)
#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,poz=0;
void verifica(int i,char * s)
{
printf ("%d %s\n",poz,s);
int mm=strlen(s);
int k=0;
if (s[0]=='b')
{
if (poz<a[i][0]-mm+1)
{
switch (a[i][poz])
{
case 2:
poz++;
verifica(i,"b");
break;
case 1:
if (poz+4<=a[i][0]-mm+1 && a[i][poz+2]==3)
{
poz+=4;
verifica(i,"c");
}
break;
}
}
}
else
if (s[0]=='c')
{
if (poz<a[i][0]-mm+1 && a[i][poz]==3)
{
poz++;
verifica(i,"bc");
}
else
{
switch(a[i][poz])
{
case 1:
if (a[i][poz+1]==2)
{
poz+=2;
t=1;
}
break;
case 2:
poz++;
t=1;
break;
}
}
}
// if (strlen(s)>1 && t==1 && poz<a[i][0])
/*
if (strlen(s)>1 && poz>a[i][0])
{
printf("a2\n");
t=0;
}
else
*/
if (strlen(s)>1 && poz<a[i][0])
{
t=0;
poz++;
printf("a1\n");
verifica(i,s+1);
}
}
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:
poz=2;
verifica(i,"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)
{
poz=5;
verifica(i,"c");
}
break;
case 3:
poz=2;
verifica(i,"bc");
break;
}
fprintf(out, "%d\n",t);
printf("\nrezultat %d\n",t);
printf("*************\n");
}
}
return 0;
}