結果
問題 |
No.2779 Don't make Pair
|
ユーザー |
|
提出日時 | 2024-06-07 21:44:48 |
言語 | C# (.NET 8.0.404) |
結果 |
AC
|
実行時間 | 145 ms / 2,000 ms |
コード長 | 1,217 bytes |
コンパイル時間 | 17,107 ms |
コンパイル使用メモリ | 166,404 KB |
実行使用メモリ | 217,244 KB |
最終ジャッジ日時 | 2024-12-26 07:35:29 |
合計ジャッジ時間 | 17,088 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 24 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (118 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(); public static void Main() { Solve(); } static void Solve() { var n = NN; var a = NList; var dic = new Dictionary<int, List<int>>(); for (var i = 0; i < n; ++i) { if (dic.ContainsKey(a[i])) dic[a[i]].Add(i); else dic[a[i]] = new List<int>{ i }; } var kmin = 1; var kmax = n - 1; foreach (var kv in dic) { if (kv.Value.Count > 2) { WriteLine("0"); WriteLine(); return; } else if (kv.Value.Count == 2) { kmin = Math.Max(kmin, kv.Value[0] + 1); kmax = Math.Min(kmax, kv.Value[1]); } } var ans = new List<int>(); for (var i = kmin; i <= kmax; ++i) ans.Add(i); WriteLine(ans.Count); WriteLine(string.Join(" ", ans)); } }