結果
問題 | No.447 ゆきこーだーの雨と雪 (2) |
ユーザー | くれちー |
提出日時 | 2016-11-19 15:53:46 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 372 ms / 2,000 ms |
コード長 | 3,220 bytes |
コンパイル時間 | 903 ms |
コンパイル使用メモリ | 107,392 KB |
実行使用メモリ | 22,912 KB |
最終ジャッジ日時 | 2024-05-05 04:13:46 |
合計ジャッジ時間 | 6,229 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 22 ms
18,176 KB |
testcase_01 | AC | 22 ms
18,048 KB |
testcase_02 | AC | 23 ms
18,176 KB |
testcase_03 | AC | 44 ms
19,072 KB |
testcase_04 | AC | 40 ms
19,072 KB |
testcase_05 | AC | 205 ms
20,096 KB |
testcase_06 | AC | 274 ms
22,528 KB |
testcase_07 | AC | 113 ms
20,352 KB |
testcase_08 | AC | 136 ms
20,736 KB |
testcase_09 | AC | 291 ms
22,272 KB |
testcase_10 | AC | 40 ms
18,816 KB |
testcase_11 | AC | 53 ms
19,456 KB |
testcase_12 | AC | 81 ms
19,712 KB |
testcase_13 | AC | 230 ms
21,236 KB |
testcase_14 | AC | 333 ms
22,236 KB |
testcase_15 | AC | 59 ms
19,328 KB |
testcase_16 | AC | 55 ms
19,328 KB |
testcase_17 | AC | 48 ms
19,328 KB |
testcase_18 | AC | 30 ms
18,560 KB |
testcase_19 | AC | 340 ms
22,912 KB |
testcase_20 | AC | 372 ms
22,528 KB |
testcase_21 | AC | 75 ms
19,456 KB |
testcase_22 | AC | 53 ms
19,328 KB |
testcase_23 | AC | 79 ms
19,968 KB |
testcase_24 | AC | 231 ms
22,548 KB |
testcase_25 | AC | 310 ms
22,784 KB |
testcase_26 | AC | 122 ms
20,864 KB |
testcase_27 | AC | 108 ms
20,480 KB |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; using System.Collections.Generic; class Problem { public char Name { get; set; } public int Level { get; set; } public int Solve { get; set; } = 0; public Problem(int level) { Level = level; } public static int GetId(char name) { return name - 'A'; } } class Submit { public string Name { get; set; } public char ProblemName { get; set; } public Submit(string name, char problemName) { Name = name; ProblemName = problemName; } } class Participant : IEquatable<Participant>, IComparable<Participant> { public string Name { get; set; } public List<int> Score { get; set; } public int ScoreSum { get; set; } = 0; public int LastSubmit { get; set; } public Participant(string name) { Name = name; } public Participant(string name, int problemNum, int lastSubmit) { Name = name; Score = new List<int>(); for (int i = 0; i < problemNum; i++) Score.Add(0); LastSubmit = lastSubmit; } bool IEquatable<Participant>.Equals(Participant p) { if (p == null) return false; else return (Name == p.Name); } public int CompareTo(Participant p) { if (ScoreSum.CompareTo(p.ScoreSum) == 0) return LastSubmit.CompareTo(p.LastSubmit); else return p.ScoreSum.CompareTo(ScoreSum); } public void Solve(int no, int level, int rank) { Score[no] = 50 * level + (500 * level / (8 + 2 * rank)); ScoreSum += Score[no]; } } class Program { static void Main() { int N = int.Parse(Console.ReadLine()); var problemList = new List<Problem>(N); string[] strtmp = Console.ReadLine().Split(' '); for (int i = 0; i < N; i++) problemList.Add(new Problem(int.Parse(strtmp[i]))); int T = int.Parse(Console.ReadLine()); var submitList = new List<Submit>(T); var participantList = new List<Participant>(); for (int i = 0; i < T; i++) { strtmp = Console.ReadLine().Split(' '); submitList.Add(new Submit(strtmp[0], char.Parse(strtmp[1]))); if (!participantList.Contains(new Participant(submitList[i].Name))) participantList.Add(new Participant(submitList[i].Name, N, i)); int tmpProblemNo = Problem.GetId(submitList[i].ProblemName); int tmpParticipantNo = participantList.IndexOf(new Participant(submitList[i].Name)); problemList[tmpProblemNo].Solve++; participantList[tmpParticipantNo].Solve( tmpProblemNo, problemList[tmpProblemNo].Level, problemList[tmpProblemNo].Solve); participantList[tmpParticipantNo].LastSubmit = i; } participantList.Sort(); for (int i = 0; i < participantList.Count; i++) { Console.Write((i + 1) + " " + participantList[i].Name + " "); for (int j = 0; j < problemList.Count; j++) Console.Write(participantList[i].Score[j] + " "); Console.WriteLine(participantList[i].ScoreSum); } } }