結果

問題 No.702 中央値を求めよ LIMITED
ユーザー ohreitetsu
提出日時 2018-06-16 16:54:51
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 245 ms / 5,000 ms
コード長 1,599 bytes
コンパイル時間 925 ms
コンパイル使用メモリ 75,808 KB
実行使用メモリ 11,728 KB
最終ジャッジ日時 2024-11-22 22:28:15
合計ジャッジ時間 8,405 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 25
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'int main(int, char**)':
main.cpp:70:13: warning: 'I' may be used uninitialized [-Wmaybe-uninitialized]
   70 |         int I;
      |             ^

ソースコード

diff #
プレゼンテーションモードにする

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
unsigned int x = 0, y = 1, z = 2, w = 3;
unsigned int generate() {
unsigned int t = (x^(x<<11));
x = y;
y = z;
z = w;
w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
return w;
}
int main(int argc, char* argv[])
{
long long seed;
cin >> seed;
x = seed;
const int MAX=10000001;
vector<unsigned int> v[12];
int i;
int L[12];
for (i=0;i<12;i++){
L[i]=0;
}
for (i = 0; i < MAX; i++) {
unsigned int val=generate();
if (val<= 100000000){
L[0]++;
//v[0].push_back(val);
}else if (val<=500000000){
L[1]++;
//v[1].push_back(val);
}else if (val<=700000000){
L[2]++;
//v[2].push_back(val);
}else if (val<=1000000000){
L[3]++;
//v[3].push_back(val);
}else if (val<=1500000000){
//v[4].push_back(val);
L[4]++;
}else if (val<=2000000000){
L[5]++;
//v[5].push_back(val);
}else if (val<=2500000000){
L[6]++;
v[6].push_back(val);
}else if (val<=3000000000){
//v[7].push_back(val);
L[7]++;
}else if (val<=3500000000){
L[8]++;
//v[8].push_back(val);
}else if (val<=4000000000){
//v[9].push_back(val);
L[9]++;
}else if (val<=5000000000){
//v[10].push_back(val);
L[10]++;
}else{
//v[11].push_back(val);
L[11]++;
}
}
const int MID=MAX/2;
int N=0;
int I;
for (i=0;i<12;i++){
//L[i]=v[i].size();
if (N+L[i]<MID){
N+=L[i];
}else{
I=i;
break;
}
}
for (i=0;i<12;i++){
if (i!=I){
v[i].clear();
}
}
sort(v[I].begin(),v[I].end());
cout<<v[I][MID-N]<<endl;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0