Page 1 of 2

457 - Linear Cellular Automata

Posted: Mon Aug 12, 2002 7:04 pm
by masti
I am trying to solve the linear cellular automata problem. This is my code I get a wrong answer reply and I don't really know what's wrong about it. Thanks for help

Code: Select all

program automata(input,output);


var
T1,T2:array [1..40] of byte;
DNA:array [0..9] of byte;
i,z:integer;

procedure print(var T:array of byte);

var
 i:integer;

begin
 for i:=0 to 39 do
  begin
   case T[i] of
    0:write(' ');
    1:write('.');
    2:write('x');
    3:write('W');
   end;
  end;
end;

begin
  while not eof(input) do begin 
  for i:=1 to 10 do
    read(input,DNA[i-1]);
   readln;
   T1[20]:=1;
   print(T1);
   writeln;
   for i:=1 to 49 do
    begin
     T2[1]:=DNA[T1[2]+T1[1]];
     T2[40]:=DNA[T1[39]+T1[40]];
     for z:=2 to 39 do
      T2[z]:=DNA[T1[z+1]++T1[z]+T1[z-1]];
     print(T2);
     writeln;
     for z:=1 to 40 do
      T1[z]:=T2[z];
    end;
  end;
end.

Posted: Mon Nov 18, 2002 6:30 pm
by deddy one
I'm not familiar in pascal , but consider this , it's multiple input case , so everytime you loop to the next input , you must normalize the variable that you declare , I got PE in this problem , but I see someone who get AC and when I see his code, his output produce 1 more blank line than me


hope this would help

Posted: Fri Apr 23, 2004 2:47 am
by Kentaro
I'm trying to solve this too but in C++. I'm not sure what I'm doing wrong, the code seemed so easy... Please help. :cry:
EDIT: Fixed the mixed-up loop indexes (inside a for loop over the variable i I had other for loops over the variable i. That'd be bad) but still WA...

[cpp]
using namespace std;
#include <iostream>
#include <string>
#include <sstream>

const int DNA_SIZE = 10;
const int DISH_SIZE = 40;
const int FIRST_DISH = 20;
const int DAYS = 50;

int program[DNA_SIZE];
int dish[DISH_SIZE];
int new_dish[DISH_SIZE]; // temporary holder for next day's values

int main()
{
string in_line;
while (getline(cin, in_line))
{
istringstream input(in_line);
// Initialize the dish
for (int i = 0; i < DISH_SIZE; i++)
{
if (i == FIRST_DISH - 1) dish = 1;
else dish = 0;
new_dish = 0;
}

// Read in the program
for (int i = 0; i < DNA_SIZE; i++) input >> program;

// Run the simulation
for (int i = 0; i < DAYS; i++)
{
// Write today's values from the dish
for (int j = 0; j < DISH_SIZE; j++)
{
switch (dish[j])
{
case 0: cout << ' '; break;
case 1: cout << '.'; break;
case 2: cout << 'x'; break;
case 3: cout << 'W'; break;
}
}
cout << '\n';

// Handle the left end first, it is special.
int left_sum = dish[0] + dish[1];
new_dish[0] = program[left_sum];

for (int j = 1; j < DISH_SIZE - 1; j++)
{
int sum = dish[j - 1] + dish[j] + dish[j + 1];
new_dish[j] = program[sum];
}

// Handle the right end last, it is special.
int right_sum = dish[DISH_SIZE - 1] + dish[DISH_SIZE - 2];
new_dish[DISH_SIZE - 1] = program[right_sum];

// Copy tomorrow's values into the dish
for (int j = 0; j < DISH_SIZE; j++) dish[j] = new_dish[j];
}
cout << '\n';
}
}
[/cpp]

Posted: Thu May 27, 2004 8:23 am
by WR
I copied your program and tried to test it. But the program crashed and I just used the data mentioned in the problem statement.

Posted: Thu May 27, 2004 5:24 pm
by UFP2161
Kentaro:

You're not reading the input correctly. The first line is the number of test cases; the second is empty; the third is the first test case; the fourht is empty; etc.

Posted: Fri May 28, 2004 4:10 am
by Kentaro
Okay. I'll fix what I'm doing to read the input that way and see what happens. But it wouldn't have hurt for them to specify that more clearly somewhere... :(

Posted: Fri May 28, 2004 4:36 am
by UFP2161
I think it does:
The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs.

Posted: Fri May 28, 2004 7:51 am
by WR
Hi Kentaro,

For an input like

Code: Select all

3

3 3 3 3 3 3 3 3 3 3

0 1 2 0 1 3 3 2 3 0

0 0 0 0 0 0 0 0 0 0
my program returns

Code: Select all

bbbbbbbbbbbbbbbbbbb.bbbbbbbbbbbbbbbbbbbb
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

bbbbbbbbbbbbbbbbbbb.bbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbb...bbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbb.xbx.bbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbb.bb.bb.bbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbb.........bbbbbbbbbbbbbbbb
bbbbbbbbbbbbbb.xbbbbbbbx.bbbbbbbbbbbbbbb
bbbbbbbbbbbbb.bbxbbbbbxbb.bbbbbbbbbbbbbb
bbbbbbbbbbbb...xxxbbbxxx...bbbbbbbbbbbbb
bbbbbbbbbbb.xb.WW.xbx.WW.bx.bbbbbbbbbbbb
bbbbbbbbbb.bbb.xxWb.bWxx.bbb.bbbbbbbbbbb
bbbbbbbbb...b.bWxW...WxWb.b...bbbbbbbbbb
bbbbbbbb.xbxx..WWWWbWWWW..xxbx.bbbbbbbbb
bbbbbbb.bb..W.WxbbWWWbbxW.W..bb.bbbbbbbb
bbbbbb....xWWxWWxbWbWbxWWxWWx....bbbbbbb
bbbbb.xbb.WWWWWWWWbWbWWWWWWWW.bbx.bbbbbb
bbbb.bbx..xbbbbbbWWbWWbbbbbbx..xbb.bbbbb
bbb...xb..bxbbbbbWWWWWbbbbbxb..bx...bbbb
bb.xb.bbxxbxxbbbbWbbbWbbbbxxbxxbb.bx.bbb
b.bbb..x.....xbbbbbbbbbbbx.....x..bbb.bb
...b.x...bbb.bxbbbbbbbbbxb.bbb...x.b...b
xbxxb..bx.b..bxxbbbbbbbxxb..b.xb..bxxbx.
x...bxxbbbxxxb..xbbbbbx..bxxxbbbxxb...bb
b.bxb..xbx.W.bx.bxbbbxb.xb.W.xbx..bxbx.b
..bxbx.b.bWW.bbbbxxbxxbbbb.WWb.b.xbx.bb.
xxbx.bbx..Wx..bbx.....xbb..xW..xbb.bb...
...bb.xb.WWW.x.xb.bbb.bx.x.WWW.bx....xbx
xbx..bbb.xbxW.Wbb..b..bbW.Wxbx.bb.bb.b.x
x.b.x.b.bb.WWx.b.xxxxx.b.xWW.bb......xbb
bbxb.bx....xWWbxbWWWWWbxbWWx...xbbbb.bxb
bxxb.bb.bb.WWWWxWWbbbWWxWWWW.b.bxbb..bxx
x..b.......xbbWWWWbbbWWWWbbx.x.bxx.xxb..
b.xxxbbbbb.bxbWbbWbbbWbbWbxbW.bb.WWW.bxx
.bWW.xbbb..bxWbbbbbbbbbbbWxW.....xbx.b..
..WxWbxb.xxbWWbbbbbbbbbbbWWWWbbb.b.bbxxx
xWWWWWxbbW.WWWbbbbbbbbbbbWbbWbb..x..x.W.
WWbbbWWxb.xxbWbbbbbbbbbbbbbbbb.x.....WW.
WWbbbWWWbbW.Wbbbbbbbbbbbbbbbb.b..bbbWxx.
WWbbbWbWbb.x.bbbbbbbbbbbbbbb..xxx.bbWxWb
WWbbbbWbb.b.b.bbbbbbbbbbbbb.x.WWWb.bWWWb
WWbbbbbb..x.x..bbbbbbbbbbb.b.WxbW...WbWb
WWbbbbb.x..W..x.bbbbbbbbb..x.WWW.WbW.Wbb
WWbbbb.b..WWW..b.bbbbbbb.x..Wxbxx.W.x.bb
WWbbb..xxWxbxWxx..bbbbb.b..WWW..WWWW.b.b
WWbb.x.WxxW.WxxW.x.bbb..xxWxbxWWxbbx.x..
WWb.b.WWxxWxWxxWW.b.b.x.WxxW.WWWWxxbW..x
WW..x.xWxxxWxxxWx.x.xb.WWxxWxxbbWx.W.W.b
WxW..WWxxWxxxWxxWW.Wbb.xWxxxx.xbWWWWxW..
WWWWWxWxxxxWxxxxWxx.b.bWxxWWWWbWWbbWWWWx
WbbbWWxxWWxxxWWxxxWbx..WxxWbbWWWWbbWbbWW
bbbbWWxxWWxWxWWxWxWWb.WWxxWbbWbbWbbbbbWW

bbbbbbbbbbbbbbbbbbb.bbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
b represents a blank as in the problem statement because that's easier to read. In the program you submit, there should be a real blank!

Posted: Sat May 29, 2004 2:49 am
by Kentaro
Well, when I read the problem (this was some weeks ago) it didn't seem to say anything about how to handle the multiple input. If it had, I would have gotten AC a lot sooner.

Well, I got my AC so no more complaints from me. I'll have to see about reading problems even more carefully from now on.

Posted: Tue Aug 28, 2007 6:25 pm
by TheVelho
Hi, I don't understand why I'm getting a PE. Here is my code :

Code: Select all

#include<stdio.h>


int DNA[10];
int c[50][40];


void compute_line(int i) {
  int j;

  c[i+1][0] =  DNA[c[i][0]  + c[i][1]];
  c[i+1][39] = DNA[c[i][38] + c[i][39]];
  
  for(j = 1; j < 39; j++)
    c[i+1][j] = DNA[c[i][j-1] + c[i][j] + c[i][j+1]];

  return;
}


int main() {
  int n, i, j;

  scanf("%d", &n);
  printf("\n");

  while(n--)
  {
    /* init */

    scanf("%d %d %d %d %d %d %d %d %d %d",
          &DNA[0], &DNA[1], &DNA[2], &DNA[3], &DNA[4],
          &DNA[5], &DNA[6], &DNA[7], &DNA[8], &DNA[9]);
    printf("\n");

    /* computing */

    for(j = 0; j< 40; j++)
      c[0][j] = 0;
    c[0][19] = 1;

    for(i = 0; i < 49; i++)
      compute_line(i);

    /* printing */

    for(i = 0; i < 50; i++) {
      for(j = 0; j < 40; j++) {
        switch(c[i][j]) {
          case 1: printf("."); break;
          case 2: printf("x"); break;
          case 3: printf("W"); break;
          default: printf(" ");
        }
      }
      printf("\n");
    }
    printf("\n");
  }

  return 0;
}
A sample would be like

Code: Select all

2

0 1 2 3 0 1 2 3 0 1

                   .                    
                  ...                   
        [blah blah blah]
          .. WW   WW.xx   .. WW   xx xx 

0 2 1 3 0 2 1 3 0 2

                   .                    
                  xxx                   
        [blah blah blah]
    Wxx . xx.x.x.xx WxW . xxW xx.x.x.xx 

Thanks in advance!

Posted: Tue Aug 28, 2007 6:34 pm
by helloneo
You're printing extra 2 blank lines at the very first line..
And you're also printing 1 more blank line between each case..
See WR's output..

Posted: Wed Aug 29, 2007 1:41 am
by TheVelho
I finally got it working, after a few thousands of tries... Sorry for the noise.

There should be one blank line between each bloc, and none at the end.

Posted: Wed Aug 29, 2007 2:58 am
by helloneo
Remove your code plz..~ :-)

Re: Linear Cellular Automata 457

Posted: Fri Feb 13, 2009 10:05 pm
by sazzadcsedu
why WA??
plz someone help.

Code: Select all

   #include<stdio.h>

                    int  main()


					  { 

						  int i,j,c,a,ncase;
                  int  DNA[12];
						 int dish[42],temp[42]; 
						 
						 scanf("%d\n\n",&ncase);

						 while(ncase>0)
						 {

						  for(i=0;i<10;i++)

						  { 
                        scanf("%d",&DNA[i]);

						  } 

                         for(i=0;i<=41;i++)
							 
						 { 
							 dish[i]=0;

						 }
                            
						   dish[20]=1;


                          for(i=0;i<=40;i++)
							 
						 { 
							 temp[i]=dish[i];
						

						 }
                      
						printf("                   .                   \n");

                           for(j=2;j<=50;j++)
							
						   { 
                             for(i=1;i<=40;i++)
							 
							 { 
							   c=dish[i-1]+dish[i]+dish[i+1];
                              
							  a=DNA[c];
							 if(a==0)
								  printf(" ");
							  else if(a==1)
								  printf(".");
							  else if(a==2)
								  printf("x");
							  else if(a=3)
								  printf("W");
							 
							    temp[i]=a;  
							  
						     
							 }    
                             if(j<50 || i<40)
						     printf("\n");
						     
							 for(i=1;i<=40;i++)

							 { 
							   dish[i]=temp[i];

							 }

						   }

						      if(ncase>1)
							   printf("\n\n");

							  ncase--;
						 }

						return 0;

					  }

Re: Linear Cellular Automata 457

Posted: Thu Nov 05, 2009 6:07 pm
by anan_brish
can anyone just compile my code for this problem?
i think itz correct,but still getting WA..working for hours on it.help plz..

Code: Select all


#include<stdio.h>

char ch[40];
char ch1[40];
int dna[10];
char pr[100][40*50];

char det(int a);
int detchar(char ch);

int main(void){
     int cas,j,k,i;
     scanf("%d",&cas);
     if(cas>0){
          printf("\n");
           j=0;
           while(j<cas){
               int cn=0;

               for(k=0;k<10;k++){
                 scanf("%d",&dna[k]);
               }
               for(k=0;k<40;k++)
               {
                  if(k==19)
                    ch[k]='.';
                  else
                    ch[k]=' ';
                  ch1[k]=' ';
               }
               for(k=0;k<40;k++,cn++){
                  pr[j][cn]=ch[k];
               }
               i=0;
               while(i<49){
                   for(k=0;k<40;k++,cn++)
                   {
                     ch1[k]=det(k);
                     pr[j][cn]=ch1[k];
                   }
                   for(k=0;k<40;k++)
                     ch[k]=ch1[k];
                   i++;
               }
              j++;
              if(j!=cas)
               {
                printf("\n");
                  }
              else{
                  int cas2,lc,ct,line=1;
                  for(cas2=0;cas2<cas;cas2++){
                     for(ct=0,lc=0;lc<40*50;lc++,ct++){
                         printf("%c",pr[cas2][lc]);
                         if(ct==39){
                            printf("\n");
                            line++;
                            ct=-1;
                         }
                     }
                 if(cas2!=cas-1)
                  printf("\n");
                  }
              }
            }

     }
     return 0;
}

char det(int a){
        int m;
        char c;

        if(a-1<0)
          ch[a-1]=' ';
        if(a+1==40)
          ch[a+1]=' ';

        m=detchar(ch[a-1])+detchar(ch[a])+detchar(ch[a+1]);

        switch(dna[m]){
            case 0:{c=' ';break;}
            case 1:{c='.';break;}
            case 2:{c='x';break;}
            case 3:{c='W';break;}
            default:{c=' ';break;}
        }

        return c;
}

int detchar(char ch){
        int m;

        switch(ch){
              case ' ':{ m=0; break;}
              case '.':{ m=1; break;}
              case 'x':{ m=2; break;}
              case 'W':{ m=3; break;}
              default :{ m=0;}
        }
       return m;
}