結果

問題 No.702 中央値を求めよ LIMITED
ユーザー xuzijian629
提出日時 2018-09-05 14:41:41
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 2,210 bytes
コンパイル時間 660 ms
コンパイル使用メモリ 77,368 KB
最終ジャッジ日時 2025-01-01 22:24:15
合計ジャッジ時間 1,123 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.cpp:20:1: error: ‘uint32_t’ does not name a type
   20 | uint32_t x = 0, y = 1, z = 2, w = 3;
      | ^~~~~~~~
main.cpp:11:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   10 | #include <cassert>
  +++ |+#include <cstdint>
   11 | #pragma GCC optimize("O3")
main.cpp:21:1: error: ‘uint32_t’ does not name a type
   21 | uint32_t generate() {
      | ^~~~~~~~
main.cpp:21:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
main.cpp: In function ‘int main()’:
main.cpp:31:5: error: ‘uint32_t’ was not declared in this scope
   31 |     uint32_t seed;
      |     ^~~~~~~~
main.cpp:31:5: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
main.cpp:32:12: error: ‘seed’ was not declared in this scope
   32 |     cin >> seed;
      |            ^~~~
main.cpp:33:5: error: ‘x’ was not declared in this scope
   33 |     x = seed;
      |     ^
main.cpp:35:20: error: template argument 2 is invalid
   35 |     vector<uint32_t> tmp, reserved;
      |                    ^
main.cpp:38:13: error: request for member ‘push_back’ in ‘tmp’, which is of non-class type ‘int’
   38 |         tmp.push_back(generate());
      |             ^~~~~~~~~
main.cpp:38:31: error: no matching function for call to ‘generate()’
   38 |         tmp.push_back(generate());
      |                       ~~~~~~~~^~
In file included from /usr/include/c++/13/algorithm:61,
                 from main.cpp:4:
/usr/include/c++/13/bits/stl_algo.h:4434:5: note: candidate: ‘template<class _FIter, class _Generator> void std::generate(_FIter, _FIter, _Generator)’
 4434 |     generate(_ForwardIterator __first, _ForwardIterator __last,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4434:5: note:   template argument deduction/substitution failed:
main.cpp:38:31: note:   candidate expects 3 arguments, 0 pro

ソースコード

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

#include <iostream>
#include <vector>
#include <array>
#include <algorithm>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <unordered_map>
#include <cassert>
#pragma GCC optimize("O3")
#pragma comment(linker, "STACK:36777216")
using namespace std;
using i64 = int64_t;
constexpr i64 MOD = 1e9 + 7;
using vi = vector<i64>;
using vvi = vector<vi>;
using vvvi = vector<vvi>;
uint32_t x = 0, y = 1, z = 2, w = 3;
uint32_t generate() {
uint32_t t = (x^(x<<11));
x = y;
y = z;
z = w;
w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
return w;
}
int main() {
uint32_t seed;
cin >> seed;
x = seed;
vector<uint32_t> tmp, reserved;
int tmpsize = 1000001;
for (int i = 0; i < tmpsize; i++) {
tmp.push_back(generate());
}
sort(tmp.begin(), tmp.end());
for (int i = 250000; i <= 750000; i++) {
reserved.push_back(tmp[i]);
}
double off = 0;
int small_cnt = 0;
uint32_t min = reserved.front(), max = reserved.back(), mid = reserved[250000];
for (int i = 0; i < 9; i++) {
assert(reserved.size() == 500001);
for (int j = 0; j < 1000000; j++) {
uint32_t u1 = generate();
if (u1 <= mid) {
off -= 0.5;
if (u1 > min) {
small_cnt++;
reserved.push_back(u1);
}
}
if (u1 > mid) {
off += 0.5;
if (u1 < max) {
reserved.push_back(u1);
}
}
}
sort(reserved.begin(), reserved.end());
assert(mid == reserved[250000 + small_cnt]);
int new_mid_ind = 250000 + small_cnt + int(off);
// cout << new_mid_ind << " " << reserved.size() << endl;
tmp.clear();
for (int k = new_mid_ind - 250000; k <= new_mid_ind + 250000; k++) {
assert(k >= 0 && k < reserved.size());
tmp.push_back(reserved[k]);
}
reserved = vector<uint32_t>(tmp);
mid = reserved[250000];
min = reserved.front();
max = reserved.back();
off = 0;
small_cnt = 0;
}
cout << mid << endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0