結果
問題 |
No.1010 折って重ねて
|
ユーザー |
|
提出日時 | 2020-03-28 23:57:14 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,180 bytes |
コンパイル時間 | 910 ms |
コンパイル使用メモリ | 115,664 KB |
実行使用メモリ | 70,712 KB |
最終ジャッジ日時 | 2025-01-02 12:25:35 |
合計ジャッジ時間 | 24,676 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 WA * 6 TLE * 7 |
コンパイルメッセージ
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; public class P1010 { public static void Main() { var xyh = Console.ReadLine().Trim().Split(' ').Select(int.Parse).ToList(); var x = xyh[0] * 1000L; var y = xyh[1] * 1000L; var h = xyh[2]; var cands = new Queue<(int, int, int)>(); var used = new HashSet<(int, int, int)>(); var target = (x: 0, y: 0, h: h); cands.Enqueue(target); used.Add(target); while (cands.Count() > 0) { target = cands.Dequeue(); if(x > target.h * Math.Pow(2, target.x)) { var next = (target.x + 1, target.y, target.h * 2); if(!cands.Contains(next)) { cands.Enqueue(next); used.Add(next); } } if(y > target.h * Math.Pow(2, target.y)) { var next = (target.x, target.y + 1, target.h * 2); if(!cands.Contains(next)) { cands.Enqueue(next); used.Add(next); } } } Console.WriteLine(target.x + target.y); } }