結果
| 問題 |
No.1010 折って重ねて
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-03-28 23:49:29 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,195 bytes |
| コンパイル時間 | 5,910 ms |
| コンパイル使用メモリ | 112,572 KB |
| 実行使用メモリ | 30,060 KB |
| 最終ジャッジ日時 | 2025-01-02 12:24:05 |
| 合計ジャッジ時間 | 4,564 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 WA * 16 |
コンパイルメッセージ
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<(long, long, int, int)>();
var used = new HashSet<(long, long, int, int)>();
var target = (x: x, y: y, h: h, count: 0);
cands.Enqueue(target);
used.Add(target);
while (cands.Count() > 0) {
target = cands.Dequeue();
if(target.x > target.h) {
var next = (target.x / 2, target.y, target.h * 2, target.count+1);
if(!cands.Contains(next)) {
cands.Enqueue(next);
used.Add(next);
}
}
if(target.y > target.h) {
var next = (target.x, target.y / 2, target.h * 2, target.count+1);
if(!cands.Contains(next)) {
cands.Enqueue(next);
used.Add(next);
}
}
}
Console.WriteLine(target.count);
}
}