画图
Time Limit: 2 s
Memory Limit: 256 MB
Submission:91
AC:20
Score:99.26
Description
大家应该做过不少的画图的题目吧。
但这些题目大多都是固定的形状,你只需要进行缩放即可。
但你有没有想过,如果形状不固定,你要怎么办?
现在给你一块n*n的方形画布,并给你几条直线(为了简化题目,斜率只可能为0、1、-1或者不存在),和其对应的自变量的取值范围。
请你画出相应图像,并按要求进行缩放。
Input
第一行是一个整数T(0<T<=10)表示有T组数据。
对于每组数据:
第一行两个整数n,m(0<n<10, 0<m<100),n表示画布大小,m表示直线数。
接下来m行,每行三整数t,c,a,b(t∈{0,1,-1,2}, |c|<=1000, |a|<=1000, |b|<=1000)
其中t表示直线类型,c表示解析式里的常数,0,1,-1分别表示斜率为0,1,-1的直线(解析式为y=tx+c),2表示斜率不存在的直线(解析式 为x=c)。
若t为2,后面的a,b表示y坐标的取值范围,即y∈[a,b],否则表示x的取值范围,即x∈[a,b]。
坐标系的原点在左上角,x向下增大,y向右增大,x和y都从0开始计数。
接下来是一个整数q(0<=q<=100),表示q次缩放。
最后是q行,每行一个整数z(0<z<=10),表示缩放倍数。
Output
对于每组数据,首先输出原始图像。
然后对于q次缩放,分别输出缩放后的图像,图像统一用符号*填充,空白的地方用空格填充。注意就算是全空的图像,你也得输出相应数目的空格。
Samples
input
1
5 5
0 0 0 4
0 4 0 4
2 0 0 4
2 4 0 4
0 2 2 2
1
2
output
*****
* *
* * *
* *
*****
**********
**********
** **
** **
** ** **
** ** **
** **
** **
**********
**********
input
4
9 7
0 2 2 6
0 6 2 6
2 4 2 6
0 0 0 8
0 8 0 8
2 0 0 8
2 8 0 8
0
9 7
2 2 2 6
2 6 2 6
-1 8 2 6
0 0 0 8
0 8 0 8
2 0 0 8
2 8 0 8
0
9 7
0 2 2 6
0 6 2 6
1 0 2 6
0 0 0 8
0 8 0 8
2 0 0 8
2 8 0 8
0
9 7
0 2 2 6
0 6 2 6
2 6 2 6
0 0 0 8
0 8 0 8
2 0 0 8
2 8 0 8
0
output
*********
* *
* * * *
* * * *
* ***** *
* * * *
* * * *
* *
*********
*********
* *
* ***** *
* * *
* * *
* * *
* ***** *
* *
*********
*********
* *
* * * *
* ** * *
* * * * *
* * ** *
* * * *
* *
*********
*********
* *
* * * *
* * * *
* * * *
* * * *
* ***** *
* *
*********
Hint
标程就50行,别想太复杂。
Author
Source