結果
問題 | No.702 中央値を求めよ LIMITED |
ユーザー |
|
提出日時 | 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; | ^
ソースコード
#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;}