CodeForces 989C

题意略。

思路:如图

详见代码:

#include<bits/stdc++.h>
#define maxn 55
using namespace std;

char board[maxn][maxn];

void init(){
    for(int i = 1;i <= 25;++i){
        for(int j = 1;j <= 25;++j){
            board[i][j] = 'A';
        }
    }
    for(int i = 26;i <= 50;++i){
        for(int j = 1;j <= 25;++j){
            board[i][j] = 'B';
        }
    }
    for(int i = 1;i <= 25;++i){
        for(int j = 26;j <= 50;++j){
            board[i][j] = 'C';
        }
    }
    for(int i = 26;i <= 50;++i){
        for(int j = 26;j <= 50;++j){
            board[i][j] = 'D';
        }
    }
}

int main(){
    init();
    int a,b,c,d;
    scanf("%d%d%d%d",&a,&b,&c,&d);
    --a,--b,--c,--d;
    for(int i = 27;i <= 50;i += 2){
        if(a == 0) break;
        for(int j = 1;j <= 25;j += 2){
            if(a == 0) break;
            board[i][j] = 'A';
            --a;
        }
    }
    for(int i = 1;i <= 25;i += 2){
        if(b == 0) break;
        for(int j = 26;j <= 50;j += 2){
            if(b == 0) break;
            board[i][j] = 'B';
            --b;
        }
    }
    for(int i = 27;i <= 50;i += 2){
        if(c == 0) break;
        for(int j = 26;j <= 50;j += 2){
            if(c == 0) break;
            board[i][j] = 'C';
            --c;
        } 
    }
    for(int i = 1;i <= 25;i += 2){
        if(d == 0) break;
        for(int j = 1;j <= 25;j += 2){
            if(d == 0) break;
            board[i][j] = 'D';
            --d;
        }
    }
    printf("50 50\n");
    for(int i = 1;i <= 50;++i){
        for(int j = 1;j <= 50;++j){
            printf("%c",board[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/tiberius/p/9254944.html