結果
問題 | No.184 たのしい排他的論理和(HARD) |
ユーザー |
![]() |
提出日時 | 2020-06-08 03:41:42 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 25 ms / 5,000 ms |
コード長 | 1,946 bytes |
コンパイル時間 | 1,478 ms |
コンパイル使用メモリ | 169,508 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-04 12:49:01 |
合計ジャッジ時間 | 3,355 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
コンパイルメッセージ
main.cpp:41:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 41 | main(){ | ^~~~
ソースコード
#include<bits/stdc++.h>using namespace std;#define FOR(i,a,b) for(int i=(a),i##formax=(b);i< i##formax;i++)#define FORR(i,a,b) for(int i=(a),i##formin=(b);i>=i##formin;i--)#define pb push_back#define eb emplace_back#define mp make_pair#define fi first#define se second#define pcnt __builtin_popcount#define sz(x) (int)(x).size()#define maxs(x,y) x=max((x),(y))#define mins(x,y) x=min((x),(y))#define show(x) cout<<#x<<" = "<<(x)<<endl;#define all(a) ((a).begin()),((a).end())#define each(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)#define bit(n) (1LL<<(n))typedef long long ll;typedef __int128_t lll;template<class T>using V=vector<T>;template<class T>using VV=V<V<T>>;template<class T,class Y>using P=pair<T,Y>;template<class T,class Y>ostream& operator<<(ostream&o,P<T,Y>&p){return o<<"("<<p.fi<<","<<p.se<<")";}template<class T>ostream& operator<<(ostream&o,V<T>&v){for(T&t:v)o<<t<<",";return o;}template<class T>void uniq(V<T>&v){sort(all(v));v.erase(unique(all(v)), v.end());}template<class A,size_t N,class T>void Fill(A(&a)[N],const T&v){fill((T*)a,(T*)(a+N),v);}const int MOD = 1e9+7; //998244353;lll gcd(lll a,lll b,lll&x,lll&y){if(!b){x=1;y=0;return a;}lll d=gcd(b,a%b,y,x);y-=a/b*x;return d;}ll modInv(ll a,ll m=MOD){lll x,y;gcd(a,m,x,y);return(x%m+m)%m;}ll modPow(lll a,lll n,ll m=MOD){lll p=1;for(;n;n>>=1,a=a*a%m)if(n&1)p=p*a%m;return p;}//V<ll>Fac,Rac;void setF(int n,int m=MOD){Fac=Rac=V<ll>(++n);Fac[0]=1;FOR(i,1,n)Fac[i]=Fac[i-1]*i%m;Rac[n-1]=modInv(Fac[n-1],m);FORR(i,n-1,1)Rac[i-1]=Rac[i]*i%m;}//ll comb(int a,int b,int m=MOD){return a<b||b<0?0:Fac[a]*Rac[b]%m*Rac[a-b]%m;}const int IINF = 1e9+6;const ll LINF = 1e18;const int N = 1e5;int n, ans;V<ll> v;main(){cin.tie(0);ios::sync_with_stdio(false);scanf("%d", &n);FOR(_, 0, n){ll a;scanf("%lld", &a);for(ll l:v) mins(a, a^l);if(a) v.pb(a), ans++;}printf("%lld\n", bit(ans));}