NC231907. XCPC
描述
输入描述
共有 组测试数据。
对于每组测试数据,有 行。
第一行输入三个整数 。
接下来 行,每行三个整数 。
保证 。
输出描述
对于每组测试数据,输出 行,每行 个整数,表示每个位置被 'X' 形覆盖的次数。
示例1
输入:
2 4 4 1 3 3 1 7 8 2 4 4 3 1 1 2
输出:
0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 2 0 0 0 0 0 1 0 0 2 0 0 0 1 0 0 0 0 2 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0
C++ 解法, 执行用时: 57ms, 内存消耗: 1824K, 提交时间: 2022-01-10 17:06:37
#include <bits/stdc++.h> using namespace std; int main() { int t; scanf("%d",&t); while (t--) { int n,m,q; scanf("%d%d%d",&n,&m,&q); int a[n+2][m+2]; memset(a,0,sizeof a); while (q--) { int x,y,s; scanf("%d%d%d",&x,&y,&s); a[x][y]++; for (int i=1;i<=s;i++) { if (x+i>n||y+i>m) break; a[x+i][y+i]++; } for (int i=1;i<=s;i++) { if (x+i>n||y-i<1) break; a[x+i][y-i]++; } for (int i=1;i<=s;i++) { if (x-i<1||y+i>m) break; a[x-i][y+i]++; } for (int i=1;i<=s;i++) { if (x-i<1||y-i<1) break; a[x-i][y-i]++; } } for (int i=1;i<=n;i++) { for (int j=1;j<=m;j++) { printf("%d ",a[i][j]); } printf("\n"); } } }