比赛 20120705 评测结果 AAAEEEEEEE
题目名称 绘画 最终得分 30
用户昵称 QhelDIV 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-07-05 11:52:33
显示代码纯文本
#include <fstream>
using namespace std;
ifstream fin("drawing.in");
ofstream fout("drawing.out");
int N,K,M,Pn,Sn,Ln,Map[200][200],S[200][101][101];
class PAINT
{
public:
	int c,x1,x2,y1,y2;
	void read()
	{
		fin>>c>>x1>>y1>>x2>>y2;
	}
}P[1000];
void Solve()
{
int i,j,k,x1,x2,y1,y2,Co;string C;
	fin>>N>>K>>M;
	for(i=0;i<N;i++)
		for(j=0;j<N;j++)
			Map[i][j]=1;
	for(i=1;i<=M;i++)
	{
		fin>>C;
		if(C=="PAINT")
		{
			++Pn;
			P[Pn].read();
			for(j=P[Pn].y1;j<=P[Pn].y2;j++)
				for(k=P[Pn].x1;k<=P[Pn].x2;k++)
					if((j+k-P[Pn].y1-P[Pn].x1+2)%2==0)
						Map[k][j]=P[Pn].c;
		}
		if(C=="SAVE")
		{
			Sn++;
			for(j=0;j<N;j++)
				for(k=0;k<N;k++)
					S[Sn][j][k]=Map[j][k];
		}
		if(C=="LOAD")
		{
			fin>>x1;
			for(j=0;j<N;j++)
				for(k=0;k<N;k++)
					Map[j][k]=S[x1][j][k];
		}
	}
	for(i=0;i<N;i++)
	{
		for(j=0;j<N;j++)
			fout<<Map[i][j]<<" ";
		fout<<endl;
	}
}

int main()
{
	Solve();
	
	fin.close();
	fout.close();
	return 0;
}