結果
問題 | No.670 log は定数 |
ユーザー |
![]() |
提出日時 | 2018-03-27 21:59:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,708 bytes |
コンパイル時間 | 1,864 ms |
コンパイル使用メモリ | 176,284 KB |
実行使用メモリ | 21,752 KB |
最終ジャッジ日時 | 2024-06-25 12:55:24 |
合計ジャッジ時間 | 21,980 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | TLE * 10 |
ソースコード
#include "bits/stdc++.h"using namespace std;#define DEBUG(x) cout<<#x<<": "<<x<<endl;#define DEBUG_VEC(v) cout<<#v<<":";for(int i=0;i<v.size();i++) cout<<" "<<v[i]; cout<<endltypedef long long ll;#define vi vector<int>#define vl vector<ll>#define vii vector< vector<int> >#define vll vector< vector<ll> >#define vs vector<string>#define pii pair<int,int>#define pis pair<int,string>#define psi pair<string,int>#define pll pair<ll,ll>#define fi first#define se second#define rep(i,n) for(int i=0;i<(int)(n);i++)#define rep1(i,n) for(int i=1;i<=(int)(n);i++)#define all(c) c.begin(),c.end()const int inf = 1000000001;const ll INF = 2e18;const ll MOD = 1000000007;const ll mod = 1000000009;const double pi = 3.14159265358979323846;#define Sp(p) cout<<setprecision(15)<< fixed<<p<<endl;int dx[4] = { 1,0,-1,0 }, dy[4] = { 0,1,0,-1 };int dx2[8] = { 1,1,0,-1,-1,-1,0,1 }, dy2[8] = { 0,1,1,1,0,-1,-1,-1 };typedef unsigned long long ull;const int N = 200000;vll G(N + 25);vi cnt(N + 26);ull seed;int next() {seed = seed ^ (seed << 13);seed = seed ^ (seed >> 7);seed = seed ^ (seed << 17);return (seed >> 33);}int main() {ll n, q;cin >> n >> q >> seed;ll M = (1LL << 31) - 1;for (int i = 0; i < 10000; i++) next();vl a(n);for (int i = 0; i < n; i++) a[i] = next();sort(a.begin(), a.end());ll m = (1LL << 31) / n;rep(i, n) {//DEBUG(a[i] / m);G[a[i] / m].push_back(a[i]);}rep(i, n + 25) {cnt[i + 1] = cnt[i] + G[i].size();}ll sum = 0;rep(i, q) {ll x = next();ll temp = cnt[x / m];rep(j, G[x / m].size()) {if (G[x / m][j] < x) {temp++;}else {break;}}sum ^= temp*i;}cout << sum << endl;}