! Morgan Shuman

! Conrad Weiser High School

! Robesonia, PA

! ACSL Contest #4 - Senior 3

! Programmed in TrueBASIC

 

DIM flockm(0 to 100,11), flocka(0 to 100, 11)

 

DO

 

   INPUT birdnum

 

   FOR i = 1 to 100

       FOR j = 1 to 11

           LET flockm(i, j) = 0

           LET flocka(i, j) = 0

       NEXT j

   NEXT i

 

   FOR i = 1 to birdnum

       INPUT bspace

       LET flockm(1, bspace) = 1

   NEXT i

 

   INPUT stages

 

   FOR count = 1 to stages

 

       LET flag = 0

 

       IF flockm(count, 1) = 0 and flockm(count, 10) = 1 then

          LET flockm(count+1, 1) = 1

          LET flockm(count+1, 10) = 0

          LET flag = 1

       END IF

 

       FOR i = 1 to 9

           IF i = 9 and flockm(count, 9) = 1 and flag = 1 then

              LET flag = 1

           ELSE IF i = 1 and flockm(count+1, 1) = 1 then

              IF flag = 1 then

                 LET flag = 1

              END IF

           ELSE IF flockm(count, i) = 1 and flockm(count, i+1) = 0 then

              LET flockm(count+1, i+1) = 1

           ELSE IF flockm(count,i) = 1 and flockm(count, i+1) = 1 and flocka(count, i) = 1 then

              LET flockm(count+1, i) = 1

           ELSE IF flockm(count, i) = 1 and flockm(count, i+1) = 1 and flocka(count, i) = 0 then

              LET flocka(count+1, i) = 1

           END IF

           IF flocka(count, i) = 1 then

              IF flockm(count, i) = 0 and flockm(count+1, i) = 0 then

                 LET flockm(count+1, i) = 1

              ELSE IF flockm(count, i) = 1 or flockm(count+1, i) = 1 then

                 LET flocka(count+1, i) = 1

              END IF

           END IF

       NEXT i

 

       IF flag = 1 then

          IF flockm(count, 9) = 1 then

             LET flockm(count+1, 10) = 1

             LET flockm(count+1, 9) = 0

          END IF

       END IF

 

       IF flockm(count,1) = 1 and flockm(count, 10) = 1 then

          IF flocka(count, 10) = 0 then

             LET flocka(count+1, 10) = 1

          ELSE

             LET flockm(count+1, 10) = 1

          END IF

       END IF

 

       IF flocka(count, 10) = 1 then

          IF flockm(count, 10) = 0 then

             LET flockm(count+1, 10) = 1

          ELSE IF flockm(count, 10) = 1 then

             LET flocka(count+1, 10) = 1

          END IF

       END IF

 

   NEXT count

 

   LET highcount = 0

 

   FOR i = 1 to 10

       IF flockm(count-1, i) = 1 then LET highcount = highcount + 1

   NEXT i

 

   PRINT highcount

 

LOOP

 

END