結果
問題 |
No.628 Tagの勢い
|
ユーザー |
![]() |
提出日時 | 2018-01-05 21:51:09 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 38 ms / 2,000 ms |
コード長 | 2,226 bytes |
コンパイル時間 | 980 ms |
コンパイル使用メモリ | 111,912 KB |
実行使用メモリ | 27,976 KB |
最終ジャッジ日時 | 2024-10-07 22:09:19 |
合計ジャッジ時間 | 2,578 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
コンパイルメッセージ
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; using System.Globalization; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; class hawawa { static Printer sw = new Printer(Console.OpenStandardOutput()) { AutoFlush = false }; static void Main() { Console.SetOut(sw); solve(); Console.Out.Flush(); } static void solve() { Scanner scanner = new Scanner(); int n = scanner.nextInt(); Dictionary<string, int> scores = new Dictionary<string, int>(); while(n-- != 0) { int x = scanner.nextInt(), No = scanner.nextInt(), s = scanner.nextInt(); for(int i = 0; i < No; i++) { string tag = scanner.next(); if (!scores.ContainsKey(tag)) scores[tag] = s; else scores[tag] += s; } } List<KeyValuePair<string, int>> ans = new List<KeyValuePair<string, int>>(scores); ans.Sort(comp); for(int j = 0; j < Math.Min(10, ans.Count()); j++) { var i = ans[j]; Console.WriteLine("{0} {1}", i.Key, i.Value); } } static int comp(KeyValuePair<string, int> x, KeyValuePair<string, int> y) { if (x.Value < y.Value || (x.Value == y.Value && string.Compare(x.Key, y.Key) > 0)) return 1; if (x.Value > y.Value || (x.Value == y.Value && string.Compare(x.Key, y.Key) < 0)) return -1; return 0; } } class Scanner { string[] s; int i; char[] cs = new char[] { ' ' }; public Scanner() { s = new string[0]; i = 0; } public string next() { if (i < s.Length) return s[i++]; string st = Console.ReadLine(); while (st == "") st = Console.ReadLine(); s = st.Split(cs, StringSplitOptions.RemoveEmptyEntries); i = 0; return next(); } public int nextInt() { return int.Parse(next()); } public long nextLong() { return long.Parse(next()); } public double nextDouble() { return double.Parse(next()); } } class Printer : StreamWriter { public override IFormatProvider FormatProvider { get { return CultureInfo.InvariantCulture; } } public Printer(Stream stream) : base(stream, new UTF8Encoding(false, true)) { } public Printer(Stream stream, Encoding encoding) : base(stream, encoding) { } }