結果
問題 | No.670 log は定数 |
ユーザー |
![]() |
提出日時 | 2018-03-25 19:32:19 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 2,213 bytes |
コンパイル時間 | 1,820 ms |
コンパイル使用メモリ | 164,864 KB |
最終ジャッジ日時 | 2024-11-14 20:24:00 |
合計ジャッジ時間 | 2,347 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp:18:62: error: extended character ‘ is not valid in an identifier 18 | #define TO_INT(vec,s) REP(i,s.length()){vec.push_back(s[i] - ‘0’);} | ^ main.cpp:18:62: error: extended character ’ is not valid in an identifier
ソースコード
#include <bits/stdc++.h>#define REP(i,n) for (long i=0;i<(n);i++)#define FOR(i,a,b) for (long i=(a);i<(b);i++)#define RREP(i,n) for(long i=n;i>=0;i--)#define RFOR(i,a,b) for(long i=(a);i>(b);i--)#define dump1d_arr(array) REP(i,array.size()) cerr << #array << "[" << (i) << "] ==> " << (array[i]) << endl;#define dump2d_arr(array) REP(i,array.size()) REP(j,array[i].size()) cerr << #array << "[" << (i) << "]" << "[" << (j) << "] ==> " << (array[i][j]) <<endl;#define dump(x) cerr << #x << " => " << (x) << endl;#define CLR(vec) { REP(i,vec.size()) vec[i] = 0; }#define llINF (long long) 9223372036854775807#define loINF (long) 2147483647#define shINF (short) 32767#define SORT(c) sort((c).begin(),(c).end())#define MIN(vec) *min_element(vec.begin(), vec.end());#define MAX(vec) *max_element(vec.begin(), vec.end());#define UNIQ(vec) vec.erase(unique(vec.begin(), vec.end()),vec.end());#define IN(n,m) (!(m.find(n) == m.end()))#define TO_INT(vec,s) REP(i,s.length()){vec.push_back(s[i] - ‘0’);}#define ENUM_v(vec) for (auto e : vec)#define dump_MAP(m) for(auto itr = m.begin(); itr != m.end(); ++itr) { cerr << itr->first << " --> " << itr->second << endl; }using namespace std;typedef vector<long long> VI;typedef vector<VI> VVI;using ll = long long;using ull = unsigned long long;ull seed;int next() {seed = seed ^ (seed << 13);seed = seed ^ (seed >> 7);seed = seed ^ (seed << 17);return (seed >> 33);}int main(void) {int n, q;long div = 301010;ll sm = 0;cin >> n >> q >> seed;VI acc(101010,0);VVI hashed(101010,VI(0));for (int i = 0; i < 10000; i++) next();vector<int> a(n);for (int i = 0; i < n; i++) {a[i] = next();acc[a[i]/div]++;hashed[a[i]/div].push_back(a[i]);}REP(i,acc.size()-1) acc[i+1] += acc[i];REP(i,hashed.size()) SORT(hashed[i]);for (int i = 0; i < q; i++) {ll x = next();ll cnt = 0;ll hash = x / div;if (hash > 0) cnt += acc[hash-1];cnt += (lower_bound(hashed[hash].begin(),hashed[hash].end(),x) - hashed[hash].begin());sm ^= ll(cnt) * i;}cout << sm << endl;return 0;}