結果

問題 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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 52 ms
40,504 KB
testcase_01 AC 74 ms
42,460 KB
testcase_02 AC 53 ms
40,628 KB
testcase_03 AC 55 ms
40,844 KB
testcase_04 AC 53 ms
40,756 KB
testcase_05 AC 62 ms
40,372 KB
testcase_06 AC 78 ms
42,544 KB
testcase_07 AC 52 ms
40,752 KB
testcase_08 AC 79 ms
42,688 KB
testcase_09 AC 49 ms
40,796 KB
testcase_10 AC 1,101 ms
45,660 KB
testcase_11 AC 3,720 ms
45,224 KB
testcase_12 AC 1,218 ms
47,864 KB
testcase_13 AC 1,817 ms
49,772 KB
testcase_14 AC 3,003 ms
43,524 KB
testcase_15 AC 3,936 ms
47,520 KB
testcase_16 AC 271 ms
46,920 KB
testcase_17 AC 1,652 ms
45,296 KB
testcase_18 AC 2,763 ms
45,296 KB
testcase_19 AC 2,764 ms
47,860 KB
testcase_20 AC 4,152 ms
45,744 KB
testcase_21 AC 4,123 ms
47,396 KB
testcase_22 AC 4,223 ms
45,604 KB
testcase_23 AC 50 ms
40,628 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

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

0