比赛 |
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,°);
xz(a2,b2,deg);
}
}
}
return 0;
}
/*
###############################
线段树不会写o_O!
旋转不会推。。
只会写暴力。。。
2333333
###############################
*/