結果
問題 | No.1450 nahco314's First Problem |
ユーザー |
![]() |
提出日時 | 2021-03-31 15:47:56 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 1,599 bytes |
コンパイル時間 | 1,837 ms |
コンパイル使用メモリ | 161,264 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-08 14:18:29 |
合計ジャッジ時間 | 3,523 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 37 |
ソースコード
#include <bits/stdc++.h> template<class T> inline bool chmin(T&a, T b){if(a > b){a = b; return true;}else{return false;}} template<class T> inline bool chmax(T&a, T b){if(a < b){a = b; return true;}else{return false;}} #define ll long long #define double long double #define rep(i,n) for(int i=0;i<(n);i++) #define REP(i,n) for(int i=1;i<=(n);i++) #define mod (ll)(1e9+7) #define inf (ll)(3e18+7) #define eps (double)(1e-9) #define pi (double) acos(-1) #define P pair<int,int> #define PiP pair<int,pair<int,int>> #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() using namespace std; ll x; ll solve(ll a, ll b){ vector<int> v; for(ll i = 0; i <= 60; i++){ if(i < 6){ if(a & (1<<i))v.push_back(1); else v.push_back(0); }else{ if(x & (1LL<<i)){ v.push_back(1); a |= (1LL<<i); }else v.push_back(0); } } int acu = accumulate(all(v), 0); bool ok = true; if((a ^ b) != x)ok = false; else if(acu != b)ok = false; if(ok)return a; else return -1; } int main() { cin >> x; ll ans = -1; for(int bit1 = 0; bit1 < 64; bit1++){ for(int bit2 = 0; bit2 < 64; bit2++){ vector<int> n(10); vector<int> m(10); rep(i, 10){ if(bit1 & (1<<i))n[i] = 0; else n[i] = 1; if(bit2 & (1<<i))m[i] = 0; else m[i] = 1; } ll now = solve(bit1, bit2); if(now != -1)ans = now; } } cout << ans << endl; }