結果
| 問題 |
No.61 リベリオン
|
| コンテスト | |
| ユーザー |
nanophoto12
|
| 提出日時 | 2014-11-11 01:23:55 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 3,978 bytes |
| コンパイル時間 | 934 ms |
| コンパイル使用メモリ | 111,212 KB |
| 実行使用メモリ | 53,760 KB |
| 最終ジャッジ日時 | 2024-12-31 09:31:59 |
| 合計ジャッジ時間 | 13,649 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 1 WA * 1 TLE * 2 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main(string[] args)
{
var q = int.Parse(Console.ReadLine());
List<string> results = new List<string>();
for (int i = 0; i < q; i++)
{
results.Add(Solve());
}
foreach (var element in results)
{
Console.WriteLine(element);
}
}
private static string Solve()
{
var line = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
var w = line[0];
var h = line[1];
var d = line[2];
var mx = line[3];
var my = line[4];
var hx = line[5];
var hy = line[6];
var vx = line[7];
var vy = line[8];
var start = hx;
var end = hx + vx*d;
if (vx == 0)
{
if (hx == mx)
{
return "Hit";
}
return "Miss";
}
if (vy == 0)
{
if (hy == my)
{
return "Hit";
}
return "Miss";
}
if (vx > 0)
{
for (int i = 0; 2*i*w + mx <= end; i++)
{
var targetX = 2*i*w + mx;
if (targetX < start)
{
continue;
}
int child = vy*(2*i*w + mx - hx);
if (child%vx != 0)
{
continue;
}
if ((hy + child/vx - my)%(2*h) == 0)
{
return "Hit";
}
if ((hy + child/vx + my)%(2*h) == 0)
{
return "Hit";
}
}
for (int i = 0; (2*i)*w - mx <= end; i++)
{
var targetX = 2*i*w - mx;
if (targetX < start)
{
continue;
}
var child = vy*(2*i*w - mx - hx);
if (child%vx != 0)
{
continue;
}
if (((hy + child/vx - my)%(2*h)) == 0)
{
return "Hit";
}
if (((hy + child/vx + my)%(2*h)) == 0)
{
return "Hit";
}
}
}
else
{
for (int i = 0; 2 * i * w + mx >= end; i--)
{
var targetX = 2 * i * w + mx;
if (targetX > start)
{
continue;
}
int child = vy * (2 * i * w + mx - hx);
if (child % vx != 0)
{
continue;
}
if ((hy + child / vx - my) % (2 * h) == 0)
{
return "Hit";
}
if ((hy + child / vx + my) % (2 * h) == 0)
{
return "Hit";
}
}
for (int i = 0; (2 * i) * w - mx >= end; i--)
{
var targetX = 2 * i * w - mx;
if (targetX > start)
{
continue;
}
var child = vy * (2 * i * w - mx - hx);
if (child % vx != 0)
{
continue;
}
if (((hy + child / vx - my) % (2 * h)) == 0)
{
return "Hit";
}
if (((hy + child / vx + my) % (2 * h)) == 0)
{
return "Hit";
}
}
}
return "Miss";
}
}
nanophoto12