Submission #6501167


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;

namespace AtCoder
{
    class Program
    {
        static Dictionary<int, int> bosses;
        static Dictionary<int, int> salaries;

        static void Main(string[] args)
        {
            //[summary]C - 高橋君の給料
            int n = int.Parse(Console.ReadLine());
            bosses = new Dictionary<int, int>();
            salaries = new Dictionary<int, int>();

            //高橋社長の情報
            bosses.Add(1, 0);
            salaries.Add(1, 1);

            for (int i = 2; i <= n; i++)
            {
                int boss = int.Parse(Console.ReadLine());
                bosses.Add(i, boss);
                salaries.Add(i, 1);
            }

            for(int i = n; i > 0; i--)
            {
                salaries[i] = CalcSalary(i);
            }

            Console.WriteLine(salaries[1]);
        }

        static int CalcSalary(int id)
        {
            //部下の給料
            var members = new List<int>();

            foreach(var b in bosses)
            {
                if (b.Value == id)
                {
                    members.Add(salaries[b.Key]);
                }
            }

            if (members.Count == 0)
            {
                return 1;
            }
            else
            {
                int min = members.Min();
                int max = members.Max();

                return min + max + 1;
            }            
        }

        static List<int> ReadLines(int count = 0)
        {
            //[summary]コンソールの値を読み込む
            var lines = new List<int>();
            string s;

            //読み込む行数が未指定のときは、1行目の値を"count"とみなす
            if (count == 0)
            {
                s = Console.ReadLine().TrimEnd();
                count = int.Parse(s);
            }

            for (int i = 0; i < count; i++)
            {
                s = Console.ReadLine().TrimEnd();
                lines.Add(int.Parse(s));
            }

            return lines;
        }
    }
}

Submission Info

Submission Time
Task C - 高橋君の給料
User tad092626
Language C# (Mono 4.6.2.0)
Score 100
Code Size 2223 Byte
Status AC
Exec Time 25 ms
Memory 13396 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 4
AC × 22
Set Name Test Cases
Sample example_0.txt, example_1.txt, example_2.txt, example_3.txt
All example_0.txt, example_1.txt, example_2.txt, example_3.txt, maxrand_0.txt, maxrand_1.txt, maxrand_2.txt, random_0.txt, random_1.txt, random_2.txt, random_3.txt, random_4.txt, random_5.txt, random_6.txt, random_7.txt, random_8.txt, random_9.txt, special_0.txt, example_0.txt, example_1.txt, example_2.txt, example_3.txt
Case Name Status Exec Time Memory
example_0.txt AC 25 ms 13280 KB
example_1.txt AC 24 ms 11232 KB
example_2.txt AC 24 ms 9184 KB
example_3.txt AC 24 ms 11232 KB
maxrand_0.txt AC 24 ms 13280 KB
maxrand_1.txt AC 24 ms 11232 KB
maxrand_2.txt AC 24 ms 11232 KB
random_0.txt AC 24 ms 11232 KB
random_1.txt AC 24 ms 11232 KB
random_2.txt AC 23 ms 9184 KB
random_3.txt AC 23 ms 9184 KB
random_4.txt AC 23 ms 11232 KB
random_5.txt AC 25 ms 13396 KB
random_6.txt AC 24 ms 11232 KB
random_7.txt AC 24 ms 11232 KB
random_8.txt AC 23 ms 9184 KB
random_9.txt AC 24 ms 11232 KB
special_0.txt AC 24 ms 11348 KB