結果
問題 | No.1298 OR XOR |
ユーザー |
|
提出日時 | 2021-12-02 16:45:26 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 3,050 bytes |
コンパイル時間 | 2,050 ms |
コンパイル使用メモリ | 188,420 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-05 01:58:56 |
合計ジャッジ時間 | 2,695 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 13 |
ソースコード
#include <bits/stdc++.h>using namespace std;const int MOD = (1e9+7);void printmat(const vector<vector<int>>& mat) {for (auto row : mat) {for (auto elem : row)cout << elem << " ";cout << endl;}}void printv(const vector<int>& v) {for (auto elem : v)cout << elem << " ";cout << endl;}void printd(const deque<int>& v) {for (auto elem : v)cout << elem << " ";cout << endl;}void printvp(const vector<pair<int,int>>& vp) {for (auto pr : vp) {cout << pr.first << ", " << pr.second;cout << endl;}}void printvs(const vector<set<int>>& vs) {for (auto row : vs) {for (auto elem : row)cout << elem << ", ";cout << endl;}}void printht(const unordered_map<int, int>& ht) {for (auto elem : ht)cout << elem.first << " : " << elem.second << endl;}void printmp(const map<int, int>& ht) {for (auto elem : ht)cout << elem.first << " : " << elem.second << endl;}void printst(const set<int>& st) {for (auto elem : st)cout << elem << " ";cout << endl;}bool isPrime(long long n) {if (n <= 1)return false;if (n <= 3)return true;if (n % 2 == 0 || n % 3 == 0)return false;for (long long i = 5; i * i <= n; i = i + 6)if (n % i == 0 || n % (i + 2) == 0)return false;return true;}map<long long, long long> primeFactors(long long n) {map<long long, long long> ans;while (n % 2 == 0) {ans[2]++;n = n/2;}for (long long i = 3; i*i <= (n); i = i + 2) {while (n % i == 0) {ans[i]++;n = n/i;}}if (n > 2)ans[n]++;return ans;}int find_f(const vector<int>& uf, int i) {while (uf[i]!=i)i = uf[i];return i;}bool union_f(vector<int>& uf, vector<int>& sz, int a, int b) {a = find_f(uf, a);b = find_f(uf, b);//cout << "a, b = " << a << ", " << b << endl;if (a==b) return false;if (sz[a] < sz[b]) {//cout << "sz[a], sz[b] = " << sz[a] << ", " << sz[b] << endl;//cout << "a, b = " << a << ", " << b << endl;swap(a,b);//cout << "a, b = " << a << ", " << b << endl;}sz[a] += sz[b];uf[b] = a;return true;}int main() {ios_base::sync_with_stdio(false);cin.tie(NULL);int T=1, caseIdx=0;//cin >> T;while (T--) {//caseIdx++;int n, x, y, z;cin >> n;int ones = __builtin_popcount(n);if (ones==1) {cout << "-1 -1 -1" << endl;continue;}vector<int> pos;for (int i=0; i<32; i++) {if (n&(1<<i))pos.push_back(i);}//printv(pos);x = n & ~(1<<pos[0]);y = n & ~(1<<pos[1]);z = x ^ y;cout << x << " " << y << " " << z << endl;//cout << "Case #" << caseIdx << ": " << s << endl;}}