hdu 2074

1930 단어 HDU
제목 링크
이 문제는 코드 능력을 시험하고, 또 포맷 문제라도 N==1의 상황을 고려해야 한다.
 
#include <cstdio>
#include <cstring>
using namespace std;
int f[100][100];
int main()
{
    char a[2];
    int n,tt,t,i,j;
    tt=0;
    while(scanf("%d %c %c",&n,&a[0],&a[1])!=EOF)
    {
        getchar();
        if(tt) printf("
"); t=1; if((n+1)/2%2==0) t=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if((i%2)==0) f[i][j]=(t+1)%2; else f[i][j]=t; } } for(i=1;i<=(n+1)/2;i++) { f[i][0]=f[i-1][0]; f[i+1][1]=f[i][1]; } for(i=2;i<=n/2;i++) { for(j=2;j<=n/2;j++) { f[i][j]=f[i-2][j-2]; } } for(i=0;i<=n/2;i++) for(j=0;j<=n/2;j++) { f[n-i-1][j]=f[i][j]; f[i][n-1-j]=f[i][j]; f[n-1-i][n-1-j]=f[i][j]; } if(n==1) printf("%c
",a[0]); else for(i=0;i<n;i++) { for(j=0;j<n;j++) { if((!i&&!j)||(!i&&j==n-1)||(!j&&i==n-1)||(i==j&&i==n-1)) printf(" "); else printf("%c",a[f[i][j]]); } printf("
"); } tt=1; } return 0; }

 

좋은 웹페이지 즐겨찾기