結果
問題 |
No.702 中央値を求めよ LIMITED
|
ユーザー |
![]() |
提出日時 | 2018-10-12 10:36:40 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 153 ms / 5,000 ms |
コード長 | 1,153 bytes |
コンパイル時間 | 2,362 ms |
コンパイル使用メモリ | 105,600 KB |
実行使用メモリ | 17,860 KB |
最終ジャッジ日時 | 2024-11-22 22:42:16 |
合計ジャッジ時間 | 7,599 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 25 |
コンパイルメッセージ
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; namespace No702 { public class Program { public static void Main(string[] args) { const int A = 10000001; const uint Min = 2142000000; const uint Max = 2152000000; var seed = uint.Parse(Console.ReadLine()); var xorShift = new XorShift(seed); var list = new List<uint>(); var offset = 0; for (var i = 0; i < A; i++) { var gen = xorShift.Generate(); if (gen < Min) offset++; if (gen < Min || Max < gen) continue; list.Add(gen); } list.Sort(); Console.WriteLine(list[A / 2 - offset]); } } public class XorShift { uint x = 0, y = 1, z = 2, w = 3; public XorShift(uint seed) { x = seed; } public uint Generate() { var t = x ^ (x << 11); x = y; y = z; z = w; w = w ^ (w >> 19) ^ t ^ (t >> 8); return w; } } }