# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
965101 | Esgeer | Secret (JOI14_secret) | C++17 | Compilation error | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <unistd.h>
using namespace __gnu_pbds;
template <class T>
using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#ifndef Local
#pragma GCC optimize("O3,unroll-loops")
#endif
//#define int long long
#define vi vector<int>
#define vvi vector<vi>
#define pii pair<int, int>
#define vpi vector<pii>
#define vvpi vector<vpi>
#define vb vector<bool>
#define vvb vector<vb>
#define endl '\n'
#define sp << " " <<
#define F(i, s, n) for(int i = s; i < (int) n; i++)
#define pb push_back
#define fi first
#define se second
#include "secret.h"
int mod = 1e9+7;
int inf = 1e6;
const int N = 1005;
int data[11][N];
int mask[N];
int a[N];
void divi(int l, int r, int layer) {
if(l == r) return;
int m = (l + r) >> 1;
data[layer][m] = a[m];
for(int i = m-1; i >= l; i--) data[layer][i] = Secret(a[i], data[layer][i+1]);
data[layer][m+1] = a[m+1];
for(int i = m+2; i <= r; i++) data[layer][i] = Secret(data[layer][i-1], a[i]);
for(int i = m+1; i <= r; i++) mask[i] ^= (1 << layer);
divi(l, m, layer+1);
divi(m+1, r, layer+1);
}
void Init(int N, int A[]) {
F(i, 0, N) a[i] = A[i];
divi(0, N-1, 0);
}
int Query(int l, int r) {
if(l == r) return a[l];
int layer = __builtin_ctz(mask[l] ^ mask[r]);
return Secret(data[layer][l], data[layer][r]);
}
Compilation message (stderr)
secret.cpp: In function 'void divi(int, int, int)': secret.cpp:38:5: error: reference to 'data' is ambiguous 38 | data[layer][m] = a[m]; | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~ secret.cpp:39:35: error: reference to 'data' is ambiguous 39 | for(int i = m-1; i >= l; i--) data[layer][i] = Secret(a[i], data[layer][i+1]); | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~ secret.cpp:39:65: error: reference to 'data' is ambiguous 39 | for(int i = m-1; i >= l; i--) data[layer][i] = Secret(a[i], data[layer][i+1]); | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~ secret.cpp:40:5: error: reference to 'data' is ambiguous 40 | data[layer][m+1] = a[m+1]; | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~ secret.cpp:41:35: error: reference to 'data' is ambiguous 41 | for(int i = m+2; i <= r; i++) data[layer][i] = Secret(data[layer][i-1], a[i]); | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~ secret.cpp:41:59: error: reference to 'data' is ambiguous 41 | for(int i = m+2; i <= r; i++) data[layer][i] = Secret(data[layer][i-1], a[i]); | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~ secret.cpp: In function 'int Query(int, int)': secret.cpp:55:17: error: reference to 'data' is ambiguous 55 | return Secret(data[layer][l], data[layer][r]); | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~ secret.cpp:55:33: error: reference to 'data' is ambiguous 55 | return Secret(data[layer][l], data[layer][r]); | ^~~~ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from secret.cpp:1: /usr/include/c++/10/bits/range_access.h:319:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(std::initializer_list<_Tp>)' 319 | data(initializer_list<_Tp> __il) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:310:5: note: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])' 310 | data(_Tp (&__array)[_Nm]) noexcept | ^~~~ /usr/include/c++/10/bits/range_access.h:300:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)' 300 | data(const _Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ /usr/include/c++/10/bits/range_access.h:290:5: note: 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)' 290 | data(_Container& __cont) noexcept(noexcept(__cont.data())) | ^~~~ secret.cpp:31:5: note: 'int data [11][1005]' 31 | int data[11][N]; | ^~~~