#R1017. 压行大师

压行大师

题目描述

作为程序员设计一个学校的图标是什么感觉? 现在你有机会这样做了!

南京外国语学校(简称南外)的图标并不复杂,可以表示为一种 ASCII 艺术。

由于图标可能会用在不同的地方,因此你需要将图标打印成不同的尺寸。

给定大小 nn,打印大小为 nn 的图标。

详细格式如下图所示,你也可以查看样例来确认。

由于上传图片较为困难,我们把它放在了下发文件当中,请点击附加文件进行下载。

就像图片中显示的那样,* 被用在边界上,@ 被用在打印字母上.

(n+1)(n+1). 被用在横着分割字母与字母/边界上,nn. 被用在竖着分割字母与边界上。

图案的整体尺寸为 (4n+5)×(13n+19)(4n+5)\times(13n+19),当然这点你也可以从前面的信息中推断出这点。

每个字母都是 (2n+3)(2n+3) 个字符宽,(2n+3)(2n+3) 个字符高。


当然这道题并没有这么容易,在完成这个简单的任务之后,你还要保证你的代码长度尽可能小,具体的评分方式在数据范围与提示中。

输入格式

第一行包含一个正整数 nn,表示字符画大小。

输出格式

若干行,表示大小为 nn 的图标。

样例

1
********************************
*..............................*
*..@...@..@@@@@..@......@@@@@..*
*..@@..@..@......@......@......*
*..@.@.@..@@@@@..@......@@@@@..*
*..@..@@..@......@..........@..*
*..@...@..@......@@@@@..@@@@@..*
*..............................*
********************************
3
**********************************************************
*........................................................*
*........................................................*
*........................................................*
*....@.......@....@@@@@@@@@....@............@@@@@@@@@....*
*....@@......@....@............@............@............*
*....@.@.....@....@............@............@............*
*....@..@....@....@............@............@............*
*....@...@...@....@@@@@@@@@....@............@@@@@@@@@....*
*....@....@..@....@............@....................@....*
*....@.....@.@....@............@....................@....*
*....@......@@....@............@....................@....*
*....@.......@....@............@@@@@@@@@....@@@@@@@@@....*
*........................................................*
*........................................................*
*........................................................*
**********************************************************

数据范围与提示

对于所有数据,1n51\leq n\leq5

如果你有任何一个测试点的输出不正确,你的分数为 00,否则令你的代码长度为,你的得分按照以下方式计算:

double score(int X)
{
	if(X<338)
	{
		return min(100.0,60+(338-X)*0.5);
	}
	else if(X>=338 && X<400)
	{
		return ((100-pow(X-338,0.7)*2))*0.6;
	}
	else if(X>=400 && X<800)
	{
		return ((64-pow(X-400,0.5)*1.5))*0.6;
	}
	else if(X>=800)
	{
		return max(0.0,34-(X-800)*0.02)*0.6;
	}
}

附加文件中有长度与分数的对应曲线图。

by MonkeyKing & csy2005\text{by MonkeyKing \& csy2005}