POJ 2993Emag eht htiw Em Pleh

http://poj.org/problem?id=2993

这个题与POJ2996正好反着,但个人认为,比2996好做多了,那些边边框框都挺容易输出的,剩下的注意p别忘了给输进去就行,还有白色的是大写,黑色的是小写;

  1 #include<cstdio>

  2 #include<cstring>

  3 #include<iostream>

  4 #include<cstdlib>

  5 #include<algorithm>

  6 using namespace std ;

  7 struct node

  8 {

  9     int row,col;//

 10     char ch ;

 11 }sh[168];

 12 char s1[1006];

 13 int cnt;

 14 char z,w,x,y,u;

 15 int i,j,k,flag;

 16 int cmp(struct node a,struct node b)

 17 {

 18     if(a.row > b.row)

 19         return 1;

 20     else if(a.row == b.row&&a.col < b.col)

 21         return 1;

 22     return 0;

 23 }

 24 void coutt()

 25 {

 26     cin>>s1;

 27     //scanf("%c",&z);

 28     getchar();

 29     while(scanf("%c",&z)&&z != '\0')

 30     {

 31         if(z < 96&&z != ',')

 32         {

 33             scanf("%c %c",&y,&x);

 34             cnt++;

 35             sh[cnt].ch = z ;

 36             sh[cnt].col = y-96 ;

 37             sh[cnt].row = x-48 ;

 38         }

 39         else if(z != ',')

 40         {

 41             scanf("%c",&w);

 42             cnt++;

 43             sh[cnt].ch = 'P';

 44             sh[cnt].col = z-96 ;

 45             sh[cnt].row = w-48 ;

 46         }

 47     }

 48 }

 49 void couttt()

 50 {

 51     cin>>s1;

 52     //scanf("%c",&z);

 53     getchar();

 54     while(scanf("%c",&z)&&z != '\0')

 55     {

 56         if(z < 96&&z != ',')

 57         {

 58             scanf("%c %c",&y,&x);

 59             cnt++;

 60             sh[cnt].ch = z ;

 61             sh[cnt].col = y-96 ;

 62             sh[cnt].row = x-48 ;

 63         }

 64         else if(z != ',')

 65         {

 66             scanf("%c",&w);

 67             cnt++;

 68             sh[cnt].ch = 'p';

 69             sh[cnt].col = z-96 ;

 70             sh[cnt].row = w-48 ;

 71         }

 72     }

 73 }

 74 int ju(int i,int j)

 75 {

 76     if((i+j)%2 == 0)

 77         return 0 ;

 78     else return 1;

 79 }

 80 int main()

 81 {

 82     cnt = 0;

 83     /*coutt();

 84     couttt();*/

 85     cin>>s1;

 86     //scanf("%c",&z);

 87     getchar();

 88     while(scanf("%c",&z)&&(z != '\n'))

 89     {

 90         if(z<97 && z!=',')

 91         {

 92             scanf("%c%c",&y,&x);

 93             cnt++;

 94             sh[cnt].ch = z ;

 95             sh[cnt].col = y-96 ;

 96             sh[cnt].row = x-48 ;

 97         }

 98         else if(z != ',')

 99         {

100             scanf("%c",&w);

101             cnt++;

102             sh[cnt].ch = 'P';

103             sh[cnt].col = z-96 ;

104             sh[cnt].row = w-48 ;

105         }

106     }

107     cin>>s1;

108     scanf("%c",&z);

109     while(scanf("%c",&z)&& z!='\n')

110     {

111         if(z<97 && z!=',')

112         {

113             scanf("%c%c",&y,&x);

114             cnt++;

115             sh[cnt].ch = z +32;

116             sh[cnt].col = y-96 ;

117             sh[cnt].row = x-48 ;

118         }

119         else if(z != ',')

120         {

121             scanf("%c",&w);

122             cnt++;

123             sh[cnt].ch = 'p';

124             sh[cnt].col = z-96 ;

125             sh[cnt].row = w-48 ;

126         }

127     }

128     sort(sh+1,sh+cnt+1,cmp);

129     int k = 1;

130     printf("+---+---+---+---+---+---+---+---+\n");

131     for(i = 1 ; i <= 8 ; i++)

132     {

133         for(j = 1 ; j <= 8 ; j++)

134         {

135             int flag = ju(i,j);

136             printf("|");

137             if(flag) printf(":");

138             else printf(".");

139             if(sh[k].col == j&&sh[k].row ==9-i)

140             {

141                 printf("%c",sh[k++].ch);

142             }

143             else if(flag)

144                 printf(":");

145             else

146                 printf(".");

147             if(flag) printf(":");

148             else printf(".");

149         }

150         printf("|\n+---+---+---+---+---+---+---+---+\n");

151     }

152     return 0;

153 }
View Code

 

你可能感兴趣的:(poj)