結果
| 問題 | No.433 ICPC国内予選の選抜ルールがこんな感じだったらうれしい |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-10-14 23:26:54 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,979 bytes |
| 記録 | |
| コンパイル時間 | 4,687 ms |
| コンパイル使用メモリ | 108,160 KB |
| 実行使用メモリ | 69,252 KB |
| 最終ジャッジ日時 | 2024-11-22 06:13:40 |
| 合計ジャッジ時間 | 186,556 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 14 TLE * 34 |
コンパイルメッセージ
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.Linq;
using System.Text;
using System.Threading.Tasks;
namespace yuki_433
{
class Program
{
static int N, K;
static SortedDictionary<int, int> D = new SortedDictionary<int, int>();
static List<University> L = new List<University>();
static int[] C = new int[100001];
static int Counter;
static void Main(string[] args)
{
var sb = new StringBuilder();
var t = scan;
N = t[0]; K = t[1];
for (int i = 0; i < N; i++)
{
t = scan;
L.Add(new University(i,t[0], t[1], t[2]));
}
var A = L.OrderByDescending(l => l.S).ToArray();
var d = 0;
var T = A;
while (true)
{
T = A.Skip(d).ToArray();
T = T.TakeWhile(a => a.S == T[0].S).ToArray();
var cnt = T.Count();
d += cnt;
//Console.WriteLine(T.Count()+" "+T[0].S);
for (int j = 0; j < cnt; j++)
{
T = T.OrderBy(a => C[a.U]).ThenBy(a => a.P).ToArray();
sb.AppendLine(T[0].Num.ToString());
C[T[0].U]++;
T = T.Skip(1).ToArray();
Counter++;
if (K == Counter) break;
}
if (K == Counter) break;
}
Console.Write(sb);
}
class University
{
internal int Num, S, P, U;
public University(int Num, int S, int P, int U)
{
this.Num = Num;
this.S = S;
this.P = P;
this.U = U;
}
}
static int[] scan { get { return Array.ConvertAll(Console.ReadLine().Split(), int.Parse); } }
}
}