Pagini recente » Cod sursa (job #2535951) | Cod sursa (job #2438175) | Cod sursa (job #1310649) | Cod sursa (job #1341324) | Cod sursa (job #53618)
Cod sursa(job #53618)
#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)
if (poz+4<=a[i][0] && 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)
if (poz+2<a[i][0] && a[i][poz]==3)
{
poz++;
verifica(i,"bc");
}
else
{
switch(a[i][poz])
{
case 1:
if (poz+2<=a[i][0] && a[i][poz+1]==2)
{
printf("aici\n");
poz+=2;
t=1;
}
break;
case 2:
printf ("aa\n");
//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 (t)
{
if (strlen(s)>1 && poz>a[i][0])
{
t=0;
}
else
if (strlen(s)>1 && poz<a[i][0])
{
t=0;
poz++;
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]>4 && 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;
}