結果
問題 | No.2628 Shrinkage |
ユーザー | kakel-san |
提出日時 | 2024-02-16 22:12:22 |
言語 | C# (.NET 8.0.203) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,011 bytes |
コンパイル時間 | 8,974 ms |
コンパイル使用メモリ | 169,320 KB |
実行使用メモリ | 190,008 KB |
最終ジャッジ日時 | 2024-09-28 20:46:48 |
合計ジャッジ時間 | 8,844 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 49 ms
30,324 KB |
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 | AC | 49 ms
30,592 KB |
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 | - |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (98 ms)。 MSBuild のバージョン 17.9.6+a4ecab324 (.NET) main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); // Test(); } static void Test() { var r = new Random(); var count = 0; while (true) { var (x1, y1, x2, y2) = (r.Next(10), r.Next(10), r.Next(10), r.Next(10)); var (cx, cy, a) = (r.Next(10), r.Next(10), r.NextDouble()); var b = Trans(x1, y1, x2, y2, cx, cy, a); if (!Check(x1, y1, x2, y2, b.x1, b.y1, b.x2, b.y2)) { WriteLine($"{x1} {y1} {x2} {y2} -> {cx} {cy} {a} -> {b}"); var dbx = x2 - x1; var dby = y2 - y1; var dax = b.x2 - b.x1; var day = b.y2 - b.y1; WriteLine($"{dbx} {dby} {dax} {day}"); return; } ++count; if (count % 1000 == 0) WriteLine(count); } } static (double x1, double y1, double x2, double y2) Trans(double x1, double y1, double x2, double y2, double cx, double cy, double a) { return ((1-a) * x1 + a * cx, (1-a) * y1 + a * cy, (1-a) * x2 + a * cx, (1-a) * y2 + a * cy); } static bool Check(double x1, double y1, double x2, double y2, double bx1, double by1, double bx2, double by2) { if (x1 == bx1 && y1 == by1 && x2 == bx2 && y2 == by2) return true; var dbx = x2 - x1; var dby = y2 - y1; var dax = bx2 - bx1; var day = by2 - by1; if ((dbx >= 0 != dax >= 0) || (dby >= 0 != day >= 0)) return false; if (Math.Abs(dbx) < Math.Abs(dax) || Math.Abs(dby) < Math.Abs(day)) return false; if ((dbx != 0 && Eq(dbx, dax)) || (dby != 0 && Eq(dby, day))) return false; return true; } static bool Eq(double a, double b) { return Math.Abs(a - b) < 0.00001 || Math.Abs(Math.Abs(b / a) - 1) < 0.00001; } static void Solve() { var t = NN; var ans = new bool[t]; for (var u = 0; u < t; ++u) { var c = NList; if (c[0] == c[4] && c[1] == c[5] && c[2] == c[6] && c[3] == c[7]) ans[u] = true; var dbx = c[2] - c[0]; var dby = c[3] - c[1]; var dax = c[6] - c[4]; var day = c[7] - c[5]; if ((dbx >= 0 != dax >= 0) || (dby >= 0 != day >= 0)) continue; if (Math.Abs(dbx) < Math.Abs(dax) || Math.Abs(dby) < Math.Abs(day)) continue; if ((dbx != 0 && dbx == dax) || (dby != 0 && dby == day)) continue; ans[u] = true; } WriteLine(string.Join("\n", ans.Select(f => f ? "Yes" : "No"))); } }