比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 AAAAAAATTT
题目名称 Asm.Def的命令 最终得分 70
用户昵称 Tear smile 运行时间 33.108 s
代码语言 C++ 内存使用 1.84 MiB
提交时间 2015-10-31 11:58:35
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct point
{
	double x,y;
}people[100010];
void find(int w)
{
	printf("%.1lf %.1lf\n",people[w].x,people[w].y);
}
void move(int a1,int a2,int dx1,int dx2)
{
	for(int i=a1;i<=a2;i++)
	{
		people[i].x+=dx1;
		people[i].y+=dx2;
	}
}
void xz(int x1,int x2,int deg1)
{
	int len;
	for(int i=x1;i<=x2;i++)
	{
		len=sqrt(people[i].x*people[i].x+people[i].y*people[i].y);
		people[i].x=cos((180-deg1)/2)*len;
		people[i].y=sqrt(len*len-people[i].x*people[i].x);
	}
}
int main()
{
	freopen("asm_command.in","r",stdin);
	freopen("asm_command.out","w",stdout);
	int n,q,tmp,tmp1;
	int a,b,dx,dy;
	int a2,b2,deg;
	scanf("%d%d",&n,&q);
	for(int i=1;i<=n;i++)
	{
		people[i].x=0;
		people[i].y=i;
	}
	for(int i=1;i<=q;i++)
	{
		scanf("%d",&tmp);
		{
			if(tmp==0)
			{
				scanf("%d",&tmp1);
				find(tmp1);
			}
			if(tmp==1)
			{
				scanf("%d%d%d%d",&a,&b,&dx,&dy);
				move(a,b,dx,dy);
			}
			if(tmp==2)
			{
				scanf("%d%d%d",&a2,&b2,&deg);
				xz(a2,b2,deg);
			}
		}
	} 
	return 0;
}
/*
###############################

线段树不会写o_O!
旋转不会推。。
只会写暴力。。。 
2333333

###############################
*/