結果

問題 No.620 ぐるぐるぐるりん
ユーザー ふぅばぁふぅばぁ
提出日時 2017-12-21 23:24:32
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 816 bytes
コンパイル時間 186 ms
コンパイル使用メモリ 29,696 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-05-10 02:40:27
合計ジャッジ時間 6,030 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
権限があれば一括ダウンロードができます

ソースコード

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;
		}
	}
	ux = gx - 1.0+v;
	uy = gy - w;
	printf("%lf %lf\n", ux, uy);
	for (int i=1; i<t; i++) puts("0.0 0.0");
}
return 0;
}
0