• AtCoder Regular Contest 093 D


    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<iostream>
    #include<queue>
    #include<map>
    #include<cmath>
    #include<set>
    #include<stack>
    #define ll long long
    #define pb push_back
    #define max(x,y) ((x)>(y)?(x):(y))
    #define min(x,y) ((x)>(y)?(y):(x))
    #define cls(name,x) memset(name,x,sizeof(name))
    #define fs first
    #define sc second
    #define mp make_pair
    #define L(x) (1<<x)
    #define next Next
    #define index Index
    using namespace std;
    const int inf=1e9+10;
    const ll llinf=1e17+10;
    const int maxn=2e5+10;
    const int maxm=1e6+10;
    const int maxk=100;
    const int mod=1e9+7;
    int A,B;
    int num[maxn];
    char str[maxk][maxk];
    char s1[10][10]={"###.","#.#.","###.","...."};//1#1.
    char s2[10][10]={"....","..#.","....","...."};//1#
    char s3[10][10]={"...#",".#.#","...#","####"};//1#1.
    char s4[10][10]={"####","##.#","####","####"};//1.
    int main()
    {
        //freopen("in.txt","r",stdin);
        //freopen("out.txt","w",stdout);
        while (~scanf("%d %d",&A,&B))
        {
            if(B>=A-1)
            {
                fill(str[0],str[0]+maxk*maxk,'.');
                A--;
                for(int i=0;i<maxk;i+=4)
                    for(int j=0;j<maxk;j+=4)
                    {
                        if(A>=1)
                        {
                            for(int k1=0;k1<4;k1++)
                            for(int k2=0;k2<4;k2++)
                            str[i+k1][j+k2]=s1[k1][k2];
                            A--;
                            B--;
                        }
                        else if(B>=1)
                        {
                            for(int k1=0;k1<4;k1++)
                            for(int k2=0;k2<4;k2++)
                            str[i+k1][j+k2]=s2[k1][k2];
                            B--;
                        }
                    }
            }
            else if(A>=B-1)
            {
                fill(str[0],str[0]+maxk*maxk,'#');
                B--;
                for(int i=0;i<maxk;i+=4)
                    for(int j=0;j<maxk;j+=4)
                    {
                        if(B>=1)
                        {
                            for(int k1=0;k1<4;k1++)
                            for(int k2=0;k2<4;k2++)
                            str[i+k1][j+k2]=s3[k1][k2];
                            A--;
                            B--;
                        }
                        else if(A>=1)
                        {
                            for(int k1=0;k1<4;k1++)
                            for(int k2=0;k2<4;k2++)
                            str[i+k1][j+k2]=s4[k1][k2];
                            A--;
                        }
                    }
            }
            printf("%d %d
    ",maxk,maxk);
            for(int i=0;i<maxk;i++)
                for(int j=0;j<maxk;j++)
                printf("%c%s",str[i][j],j==maxk-1?"
    ":"");
        }
        return 0;
    }
  • 相关阅读:
    常用连链接命令行存储小工具
    switch case 跳转表
    抖音越狱版本App下载
    AutoLayout + UILabel布局
    ReplayKit2 有线投屏项目-反向Socket实现
    ReplayKit2 有线投屏项目总结
    直播相关-搭建直播流服务器nodejs
    难过!失眠!
    CAShapeLayer
    WebService相关概念介绍
  • 原文地址:https://www.cnblogs.com/mgz-/p/8722320.html
Copyright © 2020-2023  润新知