結果

問題 No.447 ゆきこーだーの雨と雪 (2)
ユーザー oemon
提出日時 2016-11-18 23:59:01
言語 C#(csc)
(csc 3.9.0)
結果
WA  
実行時間 -
コード長 1,805 bytes
コンパイル時間 1,016 ms
コンパイル使用メモリ 109,440 KB
実行使用メモリ 24,576 KB
最終ジャッジ日時 2024-11-26 08:57:46
合計ジャッジ時間 3,199 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other WA * 25
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

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

namespace C
{
    class Program
    {
        static void Main(string[] args)
        {
            var N = int.Parse(Console.ReadLine());
            var Ls = Console.ReadLine().Split(' ').Select(l => int.Parse(l)).ToArray();
            var T = int.Parse(Console.ReadLine());
            var NamePs = Enumerable.Range(0, T)
                .Select(i => Console.ReadLine().Split(' '))
                .ToArray();

            var results = new Dictionary<string, int[]>();

            var juni = Enumerable.Range(0, N).Select(i => 1).ToArray();
            var update = T;
            foreach (var nameP in NamePs)
            {
                var name = nameP[0];
                var p = (int)(nameP[1][0]) - 65;

                if (!results.ContainsKey(name))
                {
                    results.Add(name, new int[N + 2]);
                }

                results[name][p] = (int)Math.Floor((double)(50 * Ls[p]) + (double)(50 * Ls[p]) / (0.8 + 0.2 * (double)juni[p]));
                results[name][N] = T;
                juni[p]++;
                T--;
            }

            foreach (var result in results)
            {
                result.Value[N + 1] = result.Value.Sum();
            }

            var ordered = results.OrderByDescending(r => r.Value[N + 1]).ThenByDescending(r => r.Value[N]);
            var count = 1;
            foreach (var result in ordered)
            {
                Console.WriteLine(string.Join(" ", new[] {
                    count.ToString(),
                    result.Key,
                    string.Join(" ", result.Value.Take(N)),
                    result.Value.Take(N).Sum().ToString()
                }));
                count++;
            }
        }
    }
}
0