結果
問題 | No.2978 Lexicographically Smallest and Largest Subarray |
ユーザー |
|
提出日時 | 2024-12-22 22:04:09 |
言語 | C# (.NET 8.0.404) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,305 bytes |
コンパイル時間 | 14,952 ms |
コンパイル使用メモリ | 167,444 KB |
実行使用メモリ | 47,856 KB |
平均クエリ数 | 1501.00 |
最終ジャッジ日時 | 2024-12-22 22:04:48 |
合計ジャッジ時間 | 38,474 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 57 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (113 ms)。 MSBuild のバージョン 17.9.6+a4ecab324 (.NET) main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
using System;using static System.Console;using System.Linq;using System.Collections.Generic;class Program{static int NN => int.Parse(ReadLine());static int[] NList => ReadLine().Split().Select(int.Parse).ToArray();static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray();public static void Main(){Solve();}static void Solve(){var c = NList;var (n, q) = (c[0], c[1]);var r = new Random();var order = new List<int>();for (var i = 0; i < n; ++i) order.Add(i + 1);for (var i = n - 2; i >= 0; --i){var pos = r.Next(i, n);(order[i], order[pos]) = (order[pos], order[i]);}var minlist = new List<int>();var max = order[0];for (var i = 1; i < n; ++i){var m2 = order[i];WriteLine($"? {max} {n} {m2} {n}");var x = NN;if (x == 1){minlist.Add(max);max = m2;}else if (x == 0){minlist.Add(m2);}else{return;}}while (minlist.Count > 1){for (var i = minlist.Count - 2; i >= 0; --i){var pos = r.Next(i, minlist.Count);(minlist[i], minlist[pos]) = (minlist[pos], minlist[i]);}var submax = minlist[0];var nminlist = new List<int>();for (var i = 1; i < minlist.Count; ++i){var m2 = minlist[i];WriteLine($"? {submax} {n} {m2} {n}");var x = NN;if (x == 1){nminlist.Add(submax);submax = m2;}else if (x == 0){nminlist.Add(m2);}else{return;}}minlist = nminlist;}WriteLine($"! {minlist[0]} {minlist[0]} {max} {n}");}}