結果
| 問題 |
No.282 おもりと天秤(2)
|
| コンテスト | |
| ユーザー |
紙ぺーぱー
|
| 提出日時 | 2015-08-22 11:51:44 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
AC
|
| 実行時間 | 4,223 ms / 5,000 ms |
| コード長 | 2,246 bytes |
| コンパイル時間 | 1,117 ms |
| コンパイル使用メモリ | 113,172 KB |
| 実行使用メモリ | 49,772 KB |
| 平均クエリ数 | 440.67 |
| 最終ジャッジ日時 | 2024-07-16 21:12:05 |
| 合計ジャッジ時間 | 39,026 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
コンパイルメッセージ
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 Debug = System.Diagnostics.Debug;
using StringBuilder = System.Text.StringBuilder;
using System.Numerics;
using static System.Linq.Enumerable;
using static System.Math;
namespace Program
{
public class Solver
{
/// <summary>
/// Odd-even sort
/// </summary>
public void Solve()
{
var n = int.Parse(Console.ReadLine());
var A = Enumerate(n, x => x + 1);
for (int _ = 0; _ < n; _++)
{
var B = new int[2 * n];
for (int i = 0; i + 2 <= n; i += 2)
{
B[i] = A[i];
B[i + 1] = A[i + 1];
}
Console.WriteLine("? {0}", B.AsJoinedString());
var ans = Console.ReadLine().Split();
for (int i = 0; i * 2 < n; i++)
{
if (ans[i] == ">")
Swap(ref A[i * 2], ref A[i * 2 + 1]);
}
Array.Clear(B, 0, n);
for (int i = 0; i + 2 < n; i += 2)
{
B[i] = A[i + 1];
B[i + 1] = A[i + 2];
}
Console.WriteLine("? {0}", B.AsJoinedString());
ans = Console.ReadLine().Split();
for (int i = 0; i * 2 < n; i++)
{
if (ans[i] == ">")
Swap(ref A[i * 2 + 1], ref A[i * 2 + 2]);
}
}
Console.WriteLine("! {0}", A.AsJoinedString());
}
static T[] Enumerate<T>(int n, Func<int, T> f) { var a = new T[n]; for (int i = 0; i < n; ++i) a[i] = f(i); return a; }
static public void Swap<T>(ref T a, ref T b) { var tmp = a; a = b; b = tmp; }
}
}
#region main
static class Ex
{
static public string AsString(this IEnumerable<char> ie) { return new string(System.Linq.Enumerable.ToArray(ie)); }
static public string AsJoinedString<T>(this IEnumerable<T> ie, string st = " ") { return string.Join(st, ie); }
static public void Main()
{
var solver = new Program.Solver();
solver.Solve();
}
}
#endregion
紙ぺーぱー