結果
| 問題 | No.433 ICPC国内予選の選抜ルールがこんな感じだったらうれしい |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-10-14 23:37:00 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,074 bytes |
| 記録 | |
| コンパイル時間 | 2,757 ms |
| コンパイル使用メモリ | 115,668 KB |
| 実行使用メモリ | 84,220 KB |
| 最終ジャッジ日時 | 2024-11-22 06:40:01 |
| 合計ジャッジ時間 | 185,641 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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 HashSet<University> L = new HashSet<University>();
static int[] C = new int[100001];
static int Counter;
static bool flag;
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);
if(d >= K)
{
cnt -= d - K;
flag = true;
}
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();
}
if (flag)
{
Console.Write(sb);
return;
}
}
}
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); } }
}
}