题目链接:P6321 [COCI2006-2007#4] SKENER - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目背景
Mirko 在拿放大镜看杂志。
题目描述
他正在看一面 r 行 c 列的杂志。放大镜有两个参数 zr,zc,表示把每个字符都转换成一个 zr 行 zc 列的矩阵。
给出原始杂志,请你帮他找出杂志在放大镜下的影像。
输入格式
输入第一行四个整数 r,c,zr,zc。
接下来的 r 行,每行 c 个字符。字符可能为数字,字母或 .。
输出格式
输出一个 r × zr 行,c × zc 列的矩阵,表示放大镜下的影像。
样例 #1
样例输入 #1
3 3 1 2
.x.
x.x
.x.
样例输出 #1
..xx..
xx..xx
..xx..
样例 #2
样例输入 #2
3 3 2 1
.x.
x.x
.x.
样例输出 #2
.x.
.x.
x.x
x.x
.x.
.x.
提示
数据规模与约定
对于 100% 的数据,保证 1 <= r,c <= 50,1 <= zr,zc <= 5。
说明
题目译自 COCI2006-2007 CONTEST #4 T2 SKENER
AC code:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int main()
{
int r,c,zr,zc;
cin>>r>>c>>zr>>zc;
char a[r][c];
char res[r * zr][c * zc];
for(int i = 0 ; i < r ; i ++)
for(int j = 0 ; j < c ; j ++)
cin>>a[i][j];
for(int i = 0 ; i < r ; i ++)
{
for(int j = 0 ; j < c ; j ++)
{
for(int m = i * zr ; m < i * zr + zr ; m ++)
{
for(int n = j * zc ; n < j * zc + zc ; n ++)
{
res[m][n] = a[i][j];
}
}
}
}
for(int i = 0 ; i < r * zr ; i ++ , cout<<endl)
for(int j = 0 ; j < c * zc ; j ++)
cout<<res[i][j];
return 0;
}