lina_os

Untitled

Jul 15th, 2025
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define ll long long
  4. #define ul unsigned long long
  5. #define ld long double
  6. //#define vll(v) vector<ll>v;
  7. #define vll(v,n) vector<ll>v(n);
  8. #define mll(m) map<ll,ll>m;
  9. #define sll(s) set<ll>s;
  10. #define iv for(auto &i:v) cin >> v;
  11. #define ov for(auto &i:v) cout << v << " ";
  12. #define int long long
  13. #define Bismillah ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  14.  
  15. using namespace std;
  16.  
  17. int mod=998244353;
  18.  
  19. ll add(ll a, ll b) {
  20.     return ((a%mod) + (b%mod)) %mod;
  21. }
  22.  
  23. ll mul(ll a, ll b) {
  24.     return ((a%mod) * (b%mod)) %mod;
  25. }
  26.  
  27. ll sub(ll a, ll b) {
  28.     return (((a - b) % mod)+mod)%mod;
  29. }
  30. namespace combinatorics
  31. {
  32.     ll MOD;
  33.     vector<ll> fac,inv,finv;
  34.     ll nCr(ll x,ll y)
  35.     {
  36.         if(x<0||y>x||y<0)return(0);
  37.         return(fac[x]*finv[y]%MOD*finv[x-y]%MOD);
  38.     }
  39.     ll nPr(ll x,ll y)
  40.     {
  41.         if(x<0||y>x||y<0)return 0;
  42.         return fac[x]*finv[x-y]%MOD;
  43.     }
  44.     ll power(ll b,ll n)
  45.     {
  46.         b%=MOD;
  47.         ll s=1;
  48.         while(n)
  49.         {
  50.             if(n%2==1)s=s*b%MOD;
  51.             b=b*b%MOD;
  52.             n/=2;
  53.         }
  54.         return s;
  55.     }
  56.     void init(int n,ll mod)
  57.     {
  58.         fac.resize(n+1);
  59.         inv.resize(n+1);
  60.         finv.resize(n+1);
  61.         MOD=mod;
  62.         fac[0]=inv[0]=inv[1]=finv[0]=finv[1]=1;
  63.         for(ll i=1;i<=n;++i)fac[i]=fac[i-1]*i%MOD;
  64.         for(ll i=2;i<=n;++i)inv[i]=MOD-MOD/i*inv[MOD%i]%MOD;
  65.         for(ll i=2;i<=n;++i)finv[i]=finv[i-1]*inv[i]%MOD;
  66.     }
  67.     ll mul(ll a,ll b)
  68.     {
  69.         return ((a%MOD)*(b%MOD))%MOD;
  70.     }
  71.     ll add(ll a,ll b)
  72.     {
  73.         return ((a%MOD)+(b%MOD))%MOD;
  74.     }
  75.     ll sub(ll a,ll b)
  76.     {
  77.         return (((a-b)%MOD)+MOD)%MOD;
  78.     }
  79.     ll divide(ll a,ll b)
  80.     {
  81.         return mul(a,power(b,MOD-2));
  82.     }
  83.     ll Inv(int x)
  84.     {
  85.         return power(x,MOD-2);
  86.     }
  87.     ll catalan(int n)
  88.     {
  89.         return (nCr(2*n,n)*Inv(n+1))%MOD;
  90.     }
  91.     ll StarsAndPars(ll n,ll k)
  92.     {
  93.         return nCr(n+k-1,k-1);
  94.     }
  95. };
  96. using namespace combinatorics;
  97.  
  98. signed main() {
  99.     Bismillah
  100. //    precompute();
  101.     ll t=1;
  102.     cin >> t;
  103.     init(1e6,mod);
  104.     vector<ll>v;
  105.     for (int i=1; i<1e6+5; i++) {
  106.         if (i%2) v.push_back(1);
  107.         else v.push_back(nCr(i,i/2)^1);
  108.     }
  109.     for (int i=1; i<v.size(); i++) {
  110.         v[i]^=v[i-1];
  111.     }
  112.     while (t--) {
  113. //        solve();
  114.         ll n;
  115.         cin >> n;
  116.         cout << v[n-1] << endl;
  117.     }
  118.     return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment