Codeforces 631B Print Check【模拟】

题意:

按顺序给定列和行进行涂色,输出最终得到的方格颜色分布。

分析:

记录下涂的次序,如果某个元素的横和列都被涂过,那么就选择次序最大的颜色。

代码:

#include<iostream>
#include<cstdio>
using namespace std;
const int maxn = 5005;
int num[maxn][maxn];
int ma[2][maxn];
int ro[maxn], ca[maxn];
int main (void)
{
   int n, m, k;cin>>n>>m>>k;
   int a, b, c;
   for(int i = 1; i <= k; i++){
        cin>>a>>b>>c;
        if(a == 1){
         ro[b] = c;
         ma[0][b] = i;
        }
        else{
          ca[b] = c;
          ma[1][b] = i;
        }
   }
   for(int i = 1; i <= n; i++){
    for(int j = 1; j <= m; j++){
        int a = 0;
        if(ma[0][i] > ma[1][j]) a = ro[i];
        else a = ca[j];
        printf("%d%c",a, j == m?'\n':' ');
    }
   }
}
posted @ 2016-03-12 10:09  zhuyujiang  阅读(107)  评论(0编辑  收藏  举报