結果
問題 | No.2618 除霊 |
ユーザー | heno239 |
提出日時 | 2024-02-02 17:37:47 |
言語 | C# (.NET 8.0.203) |
結果 |
AC
|
実行時間 | 1,184 ms / 2,000 ms |
コード長 | 2,934 bytes |
コンパイル時間 | 9,207 ms |
コンパイル使用メモリ | 168,172 KB |
実行使用メモリ | 247,232 KB |
最終ジャッジ日時 | 2024-09-28 10:37:57 |
合計ジャッジ時間 | 50,535 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 55 ms
30,548 KB |
testcase_01 | AC | 58 ms
30,336 KB |
testcase_02 | AC | 56 ms
30,428 KB |
testcase_03 | AC | 56 ms
30,336 KB |
testcase_04 | AC | 57 ms
30,588 KB |
testcase_05 | AC | 55 ms
30,720 KB |
testcase_06 | AC | 1,077 ms
79,172 KB |
testcase_07 | AC | 1,060 ms
79,284 KB |
testcase_08 | AC | 1,115 ms
82,920 KB |
testcase_09 | AC | 1,076 ms
85,052 KB |
testcase_10 | AC | 1,152 ms
88,356 KB |
testcase_11 | AC | 1,034 ms
77,912 KB |
testcase_12 | AC | 1,111 ms
82,928 KB |
testcase_13 | AC | 942 ms
76,832 KB |
testcase_14 | AC | 1,029 ms
89,464 KB |
testcase_15 | AC | 929 ms
76,936 KB |
testcase_16 | AC | 930 ms
76,652 KB |
testcase_17 | AC | 996 ms
82,596 KB |
testcase_18 | AC | 998 ms
88,816 KB |
testcase_19 | AC | 961 ms
76,932 KB |
testcase_20 | AC | 948 ms
76,832 KB |
testcase_21 | AC | 993 ms
81,924 KB |
testcase_22 | AC | 1,022 ms
91,732 KB |
testcase_23 | AC | 992 ms
77,084 KB |
testcase_24 | AC | 1,003 ms
76,904 KB |
testcase_25 | AC | 1,047 ms
82,568 KB |
testcase_26 | AC | 1,014 ms
88,808 KB |
testcase_27 | AC | 963 ms
77,032 KB |
testcase_28 | AC | 966 ms
77,240 KB |
testcase_29 | AC | 1,034 ms
82,584 KB |
testcase_30 | AC | 1,078 ms
91,908 KB |
testcase_31 | AC | 1,096 ms
82,808 KB |
testcase_32 | AC | 1,070 ms
76,280 KB |
testcase_33 | AC | 1,106 ms
77,172 KB |
testcase_34 | AC | 1,084 ms
78,264 KB |
testcase_35 | AC | 1,164 ms
79,788 KB |
testcase_36 | AC | 1,122 ms
81,012 KB |
testcase_37 | AC | 1,086 ms
82,768 KB |
testcase_38 | AC | 1,133 ms
83,428 KB |
testcase_39 | AC | 1,123 ms
84,856 KB |
testcase_40 | AC | 1,108 ms
85,716 KB |
testcase_41 | AC | 1,184 ms
88,008 KB |
testcase_42 | AC | 1,141 ms
247,232 KB |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (105 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/
ソースコード
// See https://aka.ms/new-console-template for more information using System.Collections; using System.Runtime.InteropServices; internal class Program { public static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); List<List<int>> G = new List<List<int>>(n); for(int i=0;i<n;i++)G.Add(new List<int>()); for (int i = 0; i < n-1; i++) { var line = Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); int a = line[0], b = line[1]; a--; b--; G[a].Add(b); G[b].Add(a); //Console.WriteLine("first edge {0} and {1}",a,b); } List<int> cnt = new List<int>(n); for (int i = 0; i < n; i++) cnt.Add(0); List<int> mk = new List<int>(n); for (int i = 0; i < n; i++) mk.Add(-1); int m = int.Parse(Console.ReadLine()); var v =Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); List<bool> exi = new List<bool>(n); for(int i=0;i<n;i++)exi.Add(false); for (int i = 0; i < m; i++) { v[i]--; exi[v[i]] = true; for (int j = 0; j < G[v[i]].Count; j++) { int to = G[v[i]][j]; cnt[to]++; mk[to] = v[i]; //Console.WriteLine("edge {0} to {1}",i,to); } } List<int> ps = mkar(n, 0); for (int i = 0; i < n; i++) { if (cnt[i] == 1&&!exi[i]) { //Console.WriteLine("bad {0}",i); //Console.WriteLine(cnt[i]); ps[mk[i]]++; } } int preans = 0; for(int i=0;i<n;i++) if (cnt[i]>0||exi[i]) preans++; //Console.WriteLine((preans)); for (int i = 0; i < n; i++) { //Console.WriteLine("adj {0}",ps[i]); } for (int i = 0; i < n; i++) { int ans = preans; //distance 2 for (int j = 0; j < G[i].Count(); j++) { int to = G[i][j]; ans -= ps[to]; } //Console.WriteLine("hello {0}", ans); if (cnt[i] == 1&&!exi[i]) ans++; //distance 0 if (exi[i]||cnt[i]>0) ans--; //Console.WriteLine("hello {0}", ans); //Console.WriteLine(exi[i]); //distance 1 for (int j = 0; j < G[i].Count(); j++) { int to = G[i][j]; if (cnt[to] == 1 && mk[to] == i) ans--; else if (cnt[to] == 0 && exi[to]) ans--; } Console.WriteLine(ans); } } public static List<int> mkar(int n, int val) { List<int> res = new List<int>(n); for(int i=0;i<n;i++)res.Add(val); return res; } }