比赛 |
Asm.Def战记之圣地亚哥“杯2015 |
评测结果 |
AAAAAAETTE |
题目名称 |
Asm.Def的命令 |
最终得分 |
60 |
用户昵称 |
dududu |
运行时间 |
38.288 s |
代码语言 |
C++ |
内存使用 |
11.42 MiB |
提交时间 |
2015-10-31 11:58:26 |
显示代码纯文本
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
const int KN=100000+10;
const double w=3.1415926535897;
struct zb
{
float x,y;
int du;
};
zb dke[KN];
int N,Q;
void read()
{
cin>>N>>Q;
for(int i=1;i<=N;i++)
{
dke[i].x=0;
dke[i].y=i;
dke[i].du=0;
}
}
void doone(int i)
{
printf("%.1f %.1f",dke[i].x,dke[i].y);
}
void dotwo(int a,int b,int dx,int dy)
{
for(int i=a;i<=b;i++)
{
dke[i].x+=dx;
dke[i].y+=dy;
}
}
void dothree(int a,int b,int deg)
{
for(int i=a;i<=b;i++)
{
dke[i].du+=deg;
int aa=sqrt((dke[i].x)*(dke[i].x)+(dke[i].y)*(dke[i].y));
if((dke[i].du)%360<180)
dke[i].x=-aa*sin(w*(dke[i].du)/180);
else
dke[i].x=aa*sin(w*(dke[i].du)/180);
if((dke[i].du)%360<90||(dke[i].du)%360>270)
dke[i].y=-aa*cos(w*(dke[i].du)/180);
else
dke[i].y=aa*cos(w*(dke[i].du)/180);
}
}
void sovle()
{
for(int i=1;i<=Q;i++)
{
int x,a,b,dx,dy,deg;
cin>>x;
if(x==0)
{
cin>>a;
doone(a);
}
else
{
if(x==1)
{
cin>>a>>b>>dx>>dy;
dotwo(a,b,dx,dy);
}
else
{
cin>>a>>b>>deg;
dothree(a,b,deg);
}
}
}
}
int main()
{
freopen("asm_command.in","r",stdin);
freopen("asm_command.out","w",stdout);
read();
sovle();
return 0;
}