結果
問題 | No.2680 研究室配属 |
ユーザー |
![]() |
提出日時 | 2024-04-08 15:53:33 |
言語 | C# (.NET 8.0.404) |
結果 |
AC
|
実行時間 | 179 ms / 2,000 ms |
コード長 | 1,288 bytes |
コンパイル時間 | 14,000 ms |
コンパイル使用メモリ | 169,364 KB |
実行使用メモリ | 219,340 KB |
最終ジャッジ日時 | 2024-10-01 08:16:31 |
合計ジャッジ時間 | 18,985 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (98 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.Linq; using System.Collections.Generic; using System; public class Hello { static void Main() { string[] line = Console.ReadLine().Trim().Split(' '); var n = int.Parse(line[0]); var m = int.Parse(line[1]); line = Console.ReadLine().Trim().Split(' '); var a = Array.ConvertAll(line, int.Parse); getAns(n, m, a); } static void getAns(int n, int m, int[] a) { var b = new int[n, m]; for (int i = 0; i < n; i++) { string[] line = Console.ReadLine().Trim().Split(' '); for (int j = 0; j < m; j++) b[i, j] = int.Parse(line[j]); } var ans = new int[n]; var q = new Queue<int>(); var q2 = new Queue<int>(); foreach (var x in Enumerable.Range(0, n)) q.Enqueue(x); var p = 0; while (true) { while (q.Count > 0) { var t = q.Dequeue(); var room = b[t, p]; if (a[room] > 0) { ans[t] = room; a[room]--; } else q2.Enqueue(t); } if (q2.Count == 0) break; while (q2.Count > 0) q.Enqueue(q2.Dequeue()); p++; } Console.WriteLine(string.Join(" ", ans)); } }