結果

問題 No.670 log は定数
コンテスト
ユーザー ksomemo
提出日時 2018-03-23 23:40:45
言語 C++14
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=c++14 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
TLE  
実行時間 -
コード長 1,088 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 581 ms
コンパイル使用メモリ 93,604 KB
実行使用メモリ 12,964 KB
最終ジャッジ日時 2026-03-11 03:12:02
合計ジャッジ時間 55,799 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other TLE * 10
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <algorithm>
#include <iostream>
#include <vector>

#define all(x) (x).begin(), (x).end()
using namespace std;
using ll = long long;
using ull = unsigned long long;

// https://gist.github.com/yosupo06/f8b62b4d070275d9814ecaf45519f720
//  g++-5 -W -std=c++14 0670.cpp
ull seed;
int next() {
  seed = seed ^ (seed << 13);
  seed = seed ^ (seed >> 7);
  seed = seed ^ (seed << 17);
  return (seed >> 33);
}

void TLE2(int n, int q, vector<int> a) {
  ll sm = 0;
  sort(all(a));

  for (int i = 0; i < q; i++) {
    int x = next();
    int cnt = lower_bound(all(a), x) - a.begin();
    sm ^= ll(cnt) * i;
  }
  cout << sm << endl;
}

void TLE(int n, int q, vector<int> a) {
  ll sm = 0;
  for (int i = 0; i < q; i++) {
    int x = next();
    int cnt = 0;
    for (int j = 0; j < n; j++) {
      if (a[j] < x) cnt++;
    }
    sm ^= ll(cnt) * i;
  }
  cout << sm << endl;
}

int main() {
  int n, q;
  cin >> n >> q >> seed;
  for (int i = 0; i < 10000; i++) next();

  vector<int> a(n);
  for (int i = 0; i < n; i++) a[i] = next();

  TLE2(n, q, a);
  // TLE(n, q, a);
  return 0;
}
0