結果

問題 No.620 ぐるぐるぐるりん
ユーザー ふぅばぁ
提出日時 2017-12-21 23:22:19
言語 C
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 794 bytes
コンパイル時間 1,146 ms
コンパイル使用メモリ 28,928 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-12-17 22:53:06
合計ジャッジ時間 5,817 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 3
other WA * 28
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>
/*
x(t+1)=x(t)-y(t)*w+x(t)*v
y(t+1)=y(t)+x(t)*w+y(t)*v

x(t+1)=x(t)*(1+v)-y(t)*w
y(t+1)=y(t)*(1+v)+x(t)*w

x(t+1)*(1+v)=x(t)*(1+v)*(1+v)-y(t)*w*(1+v)
y(t+1)*w=y(t)*w*(1+v)+x(t)*w*w

x(t+1)*(1+v)+y(t+1)*w=x(t)*((1+v)*(1+v)+w*w)

x(t+1)*w=x(t)*w*(1+v)-y(t)*w*w
y(t+1)*(1+v)=y(t)*(1+v)*(1+v)+x(t)*w*(1+v)

y(t+1)*(1+v)-x(t+1)*w=y(t)*((1+v)*(1+v)+w*w)
*/
int main(void)
{
int n; scanf("%d", &n);
while (n--) {
	int t; scanf("%d", &t);
	double p, w, v, gx, gy, ux, uy, z;
	scanf("%lf%lf%lf%lf%lf", &p,&w,&v,&gx,&gy);
	z = (1.0+v)*(1.0+v) + w*w;
	if (t > 1 && z != 0.0) {
		for (int i=1; i<t; i++) {
			ux = (gx*(1+v)+gy*w) / z;
			uy = (gy*(1+v)-gx*w) / z;
			gx = ux; gy = uy;
			puts("0.0 0.0");
		}
	}
	ux = gx - 1.0+v;
	uy = gy - w;
	printf("%lf %lf\n", ux, uy);
}
return 0;
}
0