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':' ');
 }
   }
}

你可能感兴趣的:(Codeforces 631B Print Check【模拟】)