結果
| 問題 |
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);
}
}