結果

問題 No.1082 XORのXOR
ユーザー tonakai
提出日時 2020-09-05 12:43:23
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 17 ms / 2,000 ms
コード長 6,792 bytes
コンパイル時間 1,852 ms
コンパイル使用メモリ 194,516 KB
最終ジャッジ日時 2025-01-14 07:05:25
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

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

#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
#define ll long long
#define ld long double
#define rep(i,n) for(int i = 0; i < (int)(n); i++)
#define repo(i,n) for(int i = 1; i < (int)(n); i++)
#define pb push_back
#define mp make_pair
#define np next_permutation
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
#define uniq(v) v.erase(unique(v.begin(),v.end()),v.end())
#define lb(v,x) (lower_bound(v.begin(),v.end(),x)-v.begin())
#define ub(v,x) (upper_bound(v.begin(),v.end(),x)-v.begin())
using Pair = pair<ll,pair<int,int>>;
#define pq priority_queue<Pair, vector<Pair>, greater<Pair>>
const ll mod=1000000007;
//const ll mod=998244353;
const ld pi=acos(-1.0);
const ll INF = 1LL<<61;
template<class T>bool chmax(T &a, const T &b) {
if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) {
if (b<a) { a=b; return 1; } return 0; }
ll gcd(ll x, ll y) { return y ? gcd(y, x % y) : x; }
ll lcm(ll x, ll y) { return x / gcd(x, y) * y; }
//int2147483647 ≒ 2×10^9
//long long9223372036854775807 ≒ 9×10^18
//''+=32;
// cout << fixed << setprecision (20); 2
//2×10^8
//——————————————————modint———————————————————————————
#define MAX 2000000 //
class mint {
ll val;
static ll *invs, *facts, *finvs;
// , , MAX
bool initMint() {
invs[1] =
facts[0] = facts[1] =
finvs[0] = finvs[1] = 1;
for (int i=2; i<=MAX; i++) {
invs[i] = -invs[MOD % i] * (MOD / i) % MOD;
facts[i] = facts[i - 1] * i % MOD;
finvs[i] = finvs[i - 1] * invs[i] % MOD;
}
return true;
}
public:
static ll MOD; // mod
// val=0
mint(ll init = 0) : val(init) {
static bool call_once = initMint(); // static
assert(call_once); // unused
if (val < 0 || val >= MOD) val %= MOD;
if (val < 0) val += MOD; // 0
}
inline ll toll() { return this->val; }
//
void operator=(const mint &r) { this->val = r.val; }
void operator=(const ll &r) { *this = mint(r); }
// ; ;
mint operator+(const mint &r) {
ll ans = this->val + r.val;
if (ans >= MOD) ans -= MOD;
return mint(ans);
}
mint operator-() {
ll ans = MOD - this->val;
return mint(ans);
}
mint operator-(const mint &r) {
mint rr = r;
return *this + (-rr);
}
//; ;
mint operator*(const mint &r) {
ll ans = this->val * r.val;
return mint(ans);
}
mint inv() {
assert(this->val != 0);
if (this->val == 1) return mint(1);
mint p, q = *this, m(0), n(1), r, c;
p.val = MOD;
while (q.val > MAX) {
r = p.val % q.val;
c = m.val - n.val * (p.val / q.val);
p = q, q = r, m = n, n = c;
}
return n * invs[q.val];
}
mint operator/(const mint &r) { return *this * mint(r).inv(); }
mint operator%(const mint &r) { return mint(this->val % r.val); }
// ++ --
void operator++() { ++this->val; }
void operator++(int a) {
a = 0;
this->val++;
}
void operator--() { --this->val; }
void operator--(int a) {
a = 0;
this->val--;
}
// &
void operator+=(const mint &r) { *this = *this + r; }
void operator-=(const mint &r) { *this = *this - r; }
void operator*=(const mint &r) { *this = *this * r; }
void operator/=(const mint &r) { *this = *this / r; }
void operator%=(const mint &r) { *this = *this % r; }
//
mint pow(long n) {
if (n < 0)
return inv().pow(-n); // -n
else if (n == 0)
return mint(1);
mint half = pow(n / 2);
if (n % 2)
return *this * half * half;
else
return half * half;
}
mint pow(mint n) { return pow(n.val); }
//
mint per(mint _k) {
assert(this->val <= MAX);
const ll n = this->val, k = _k.val;
if (k < 0 || k > n) return 0;
if (k == 0) return 1;
if (k == n) return facts[n];
return mint(facts[n]) * finvs[n - k];
}
//
mint com(mint _k) {
assert(this->val <= MAX);
const ll n = this->val, k = _k.val;
if (k < 0 || k > n) return 0;
if (k == 0 || k == n) return 1;
return mint(facts[n]) * finvs[k] * finvs[n - k];
}
//
mint fact() {
assert(this->val <= MAX);
return mint(facts[this->val]);
}
friend bool operator<(const mint &l, const mint &r) { return l.val < r.val; }
friend bool operator>(const mint &l, const mint &r) { return l.val > r.val; }
friend bool operator==(const mint &l, const mint &r) { return l.val == r.val; }
friend bool operator!=(const mint &l, const mint &r) { return !(l.val == r.val); }
friend bool operator<=(const mint &l, const mint &r) { return !(l.val > r.val); }
friend bool operator>=(const mint &l, const mint &r) { return !(l.val < r.val); }
friend ostream &operator<<(ostream &os, const mint &out) {
os << out.val;
return os;
}
friend istream &operator>>(istream &is, mint &in) {
ll inl;
is >> inl;
in.val = inl % mint::MOD;
return is;
}
};
//
inline mint mpow(ll n, ll k) { return mint(n).pow(k); }
//
inline mint mper(ll n, ll k) { return mint(n).per(k); }
//
inline mint mcom(ll n, ll k) { return mint(n).com(k); }
//
inline mint mfac(ll n) { return mint(n).fact(); }
// static
ll *mint::invs = new ll[MAX+1];
ll *mint::facts = new ll[MAX+1];
ll *mint::finvs = new ll[MAX+1];
ll mint::MOD = (ll)1e9 + 7;
//ll mint::MOD = (ll)998244353;
//—————————————————————————————————————————————————
int main(){
cin.tie(0);
ios::sync_with_stdio(false);
int n;
cin>>n;
vector<ll> p(n);
rep(i,n){
cin>>p[i];
}
ll ans=0;
rep(i,n){
rep(j,n){
chmax(ans,p[i]^p[j]);
}
}
cout << ans << endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0