Problem - B - Codeforces

 

codeforces.com

n, k, r, c를 입력받고, r행 c열에는 X가 무조건 있다고 할 때, n x n의 배열의 한 점에서 가로 세로 k개 안에 X가 최소로 있어야합니다.

3 3 3 2 를 입력받았을 때 아래와 같은 경우의 수가 있겠죠.

 

그냥 constructive 하고 빠르게 생각나는대로 짰습니다.

#include <stdio.h>
int main() {
int n, k, r, c, t;
int arr[1003][1003] = {};
scanf("%d", &t);
while(t--) {
    scanf("%d%d%d%d", &n, &k, &r, &c);
    r %= k;
    c %= k;
    for(int q = 0; q <= n; q++) {
        for(int i = r + q; i <= n + k; i+=k) {
            for(int j = c + q; j <= n + k; j+= k) {
                arr[i][j] = 1;
            }
        }
    }
    for(int i = k; i < n + k; i++) {
        for(int j = k; j < n + k; j++) {
            if(arr[i][j] == 1) printf("X");
            else printf(".");
        }   
        printf("\n");
    }
    for(int i = 0; i <= n + k; i++) {
        for(int j = 0; j <= n + k; j++) {
            arr[i][j] = 0;
        }
    }
}
}

+ Recent posts