AtCoder Beginner Contest 069 D - Grid Coloring

xiaoxiao2021-02-28  86

D - Grid Coloring


Time limit : 2sec / Memory limit : 256MB

Score : 400 points

Problem Statement

We have a grid with H rows and W columns of squares. Snuke is painting these squares in colors 12N. Here, the following conditions should be satisfied:

For each i (1iN), there are exactly ai squares painted in Color i. Here, a1+a2++aN=HW.For each i (1iN), the squares painted in Color i are 4-connected. That is, every square painted in Color i can be reached from every square painted in Color i by repeatedly traveling to a horizontally or vertically adjacent square painted in Color i.

Find a way to paint the squares so that the conditions are satisfied. It can be shown that a solution always exists.

Constraints

1H,W1001NHWai1a1+a2++aN=HW

Input

Input is given from Standard Input in the following format:

H W N a1 a2 aN

Output

Print one way to paint the squares that satisfies the conditions. Output in the following format:

c11 c1W : cH1 cHW

Here, cij is the color of the square at the i-th row from the top and j-th column from the left.


Sample Input 1

Copy 2 2 3 2 1 1

Sample Output 1

Copy 1 1 2 3

Below is an example of an invalid solution:

1 2 3 1

This is because the squares painted in Color 1 are not 4-connected.


Sample Input 2

Copy 3 5 5 1 2 3 4 5

Sample Output 2

Copy 1 4 4 4 3 2 5 4 5 3 2 5 5 5 3

Sample Input 3

Copy 1 1 1 1

Sample Output 3

Copy 1        这次明明是一次很简单的四连块填进格子的问题。。然后因为一开始的理解错误到最后都没有写出来,心疼自己,所以早上就来补题了。思路上没有什么难度,主要就是要实现一个‘ S ’形的方式进行储存。 #include <cstdio> #include <iostream> using namespace std; int pd[110][110]; int main(){ int h,w,n,x=0; cin>>h>>w>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; for(int j=0;j<a[i];j++){ if((x/w)%2==0) pd[x/w][x%w]=i+1; else pd[x/w][w-(x%w)-1]=i+1; x++; } } for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ if(j==w-1) printf("%d\n",pd[i][j]); else printf("%d ",pd[i][j]); } } return 0; }

虽然这次还是没有做出来,可是为了最后一题做Beginner好蠢,下次决定要开始做下个级别的了。

转载请注明原文地址: https://www.6miu.com/read-72975.html

最新回复(0)