比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 C
题目名称 Asm.Def的命令 最终得分 0
用户昵称 debug 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2015-10-31 11:47:46
显示代码纯文本
#include<cstdio>
#include<cmath>
double g[111111][2];
int n,m;
const double pi=asinl(1.0)*2;
int main()
{
	freopen("asm_command.in","r",stdin);
	freopen("asm_command.out","w",stdout);
	scanf("%d%d",&n,&m);
	if(n<=1000)
	{
		for(int i=1;i<=n;i++)
			g[i][1]=i;
		for(i=1;i<=m;i++)
		{
			int temp;
			scanf("%d",&temp);
			if(temp==0)
			{
				int thh;
				scanf("%d",&thh);
				printf("%.1lf %.1lf\n",g[thh][0],g[thh][1]);
			}
			if(temp==1)
			{
				int a,b,c,d;
				scanf("%d%d%d%d",&a,&b,&c,&d);
				for(int j=a;j<=b;j++)
					g[j][0]+=c,g[j][1]+=d;
			}
			if(temp==2)
			{
				double ff;int a,b;
				scanf("%d%d%lf",&a,&b,&ff);
				ff=ff*pi/180;
				for(int j=a;j<=b;j++)
				{
					bool inv=0;
					if(g[j][1]<0)
						inv=1;
					double dis=sqrtl(g[j][0]*g[j][0]+g[j][1]*g[j][1]);
					double te=atanl(g[j][1]/g[j][0]);
					if(te<0)
						te+=pi;
					te+=ff;
					if(inv)
						te+=pi;
					g[j][0]=dis*cosl(te);
					g[j][1]=dis*sinl(te);
				}
			}
		}
	}
	return 0;
}