alon69's blog

By alon69, history, 6 weeks ago, In English

HELo GUts hand girlS me NOw HAVE pROBLem WIth THS COde FOR CSes>fi

THIS is THE oRBLEMOSo : https://cses.fi/problemset/task/1068

(VeRY exTREme HArdn probleM (GM-LGM LEvel) oNLY for PRos)

THIS is The CODE fOR SOlvING : // #define ONLINE_JUDGE 69

#include <bits/stdc++.h>
#include <chrono>

using namespace std;

using ll = long long;
using ull = unsigned long long;
using ld = long double;

// Macros
#define int long long
// #define ll long long
#define ld long double
#define vt vector
#define vi vector<int>
#define vvi vector<vi>
#define vii vector<pair<int,int>>
#define pok(ok) print(ok ? "YES" : "NO");

#define pii pair<int,int>

// Constants
constexpr ll SZ = 2e5 + 7;
constexpr ll inf = 9e18;
constexpr ll mod = 1e9 + 7;
constexpr ll MOD = 998244353;
constexpr ld PI = 3.141592653589793238462;
const ld scale = 1e6;


#define pb push_back
#define em emplace_back
#define all(X) (X).begin(), (X).end()
#define allr(X) (X).rbegin(), (X).rend()
#define sz(X) (int)X.size()

#define each(x, a) for (auto &x: a)
#define forn(i, n) for (int i = 0; i < n; ++i)
#define forr(i, n) for (int i = n; i >=0; --i)
#define rep(i,a,b) for(int i = a; (a <= b ? i <= b : i >= b); (a <= b ? i++ : i--))
// #define repr(i,a,b) for(int i = a; i >= b; i--)

#define fi first
#define se second
#define Endl '\n'

#define setbits(X) __builtin_popcountll(X)
#define fix(X) fixed << setprecision(X)
#define mem0(X) memset((X), 0, sizeof((X)))
#define mem1(X) memset((X), -1, sizeof((X)))


// Debug macro
string to_string(string s){return '"'+s+'"';}
string to_string(const char* s){return to_string((string)s);}
string to_string(const bool& b){return(b?"true":"false");}
template<class T>string to_string(T x){ostringstream sout;sout<<x;return sout.str();}
template<class A,class B>string to_string(pair<A,B> p){return "("+to_string(p.first)+", "+to_string(p.second)+")";}
template<class A>string to_string(const vector<A> v){
    int f=1;string res="{";for(const auto x:v){if(!f)res+= ", ";f=0;res+=to_string(x);}res+="}";
    return res;
}
template<class A>string to_string(const set<A> v){
    int f=1;string res="{";for(const auto x:v){if(!f)res+= ", ";f=0;res+=to_string(x);}res+="}";
    return res;
}
template<class A, class B>string to_string(const map<A, B> v){
    int f=1;string res="{";for(const auto x:v){if(!f)res+= ", ";f=0;res+=to_string(x);}res+="}";
    return res;
}
template<class A>string to_string(const multiset<A> v){
    int f=1;string res="{";for(const auto x:v){if(!f)res+= ", ";f=0;res+=to_string(x);}res+="}";
    return res;
}
void debug_out(){puts("");}
template<class T,class... U>void debug_out(const T& h,const U&... t){cerr<<" "<<to_string(h);debug_out(t...);}
#ifndef ONLINE_JUDGE 
#define dbg(...) cerr<<"["<<#__VA_ARGS__<<"]:",debug_out(__VA_ARGS__),cerr<<"\n";
#else
#define dbg(...) 233;
#endif

int modpow(int a, int b, int m = mod) {
    a = a % m; int ans = 1;
    while (b) {
        if (b & 1) { ans = (ans * a) % m; }
        b = b >> 1; a = (a * a) % m;
    }
    return ans;
}

// Inverse Mod (1 / a) % mod
int modinv(int a, int m = mod) { return modpow(a, m - 2, m); }

// Modular Arithematic
int modadd(int a, int b, int m = mod) { a = a % m; b = b % m; return (((a + b) % m) + m) % m; }
int modsub(int a, int b, int m = mod) { a = a % m; b = b % m; return (((a - b) % m) + m) % m; }
int modmul(int a, int b, int m = mod) { a = a % m; b = b % m; return (((a * b) % m) + m) % m; }
int moddiv(int a, int b, int m = mod) { a = a % m; b = b % m; return (modmul(a, modinv(b, m), m) + m) % m; }

// GCD
int gcd(int a, int b) { if (b == 0) { return abs(a); } return gcd(b, a % b); }

// LCM
int lcm(int a, int b) { return (a / gcd(a, b)) * b; }

// Read 
template<typename T1, typename T2> // cin >> pair<T1, T2>
istream& operator>>(istream &istream, pair<T1,T2> &p){ return (istream >> p.first >> p.second); }
template<typename T> // cin >> vector<T>
istream& operator>>(istream &istream, vector<T> &v){
  for(auto &it: v) cin >> it;
  return istream;
}
// Print 
template<typename T1, typename T2> // cout << pair<T1, T2>
ostream& operator<<(ostream &ostream, const pair<T1, T2> &p){ return (ostream << p.first << " " << p.second); }
template<typename T> //cout << vector<T>
ostream& operator<<(ostream &ostream, const vector<T> &c){ for (auto &it: c) cout << it << " "; return ostream;}

// Utility functions
template<typename T>
void print(T &&t) {cout << t << Endl;}
template <typename T, typename... Args>
void print(T &&t, Args &&... args){
  cout << t << " ";
  print(forward<Args>(args)...);
}

template<int M>
struct modint {

    static int _pow(int n, int k) {
        int r = 1;
        for (; k > 0; k >>= 1, n = (n*n)%M)
            if (k&1) r = (r*n)%M;
        return r;
    }

    int v; modint(int n = 0) : v(n%M) { v += (M&(0-(v<0))); }

    friend string to_string(const modint n) { return to_string(n.v); }
    friend istream& operator>>(istream& i, modint& n) { return i >> n.v; }
    friend ostream& operator<<(ostream& o, const modint n) { return o << n.v; }
    template<typename T> explicit operator T() { return T(v); }

    friend bool operator==(const modint n, const modint m) { return n.v == m.v; }
    friend bool operator!=(const modint n, const modint m) { return n.v != m.v; }
    friend bool operator<(const modint n, const modint m) { return n.v < m.v; }
    friend bool operator<=(const modint n, const modint m) { return n.v <= m.v; }
    friend bool operator>(const modint n, const modint m) { return n.v > m.v; }
    friend bool operator>=(const modint n, const modint m) { return n.v >= m.v; }

    modint& operator+=(const modint n) { v += n.v; v -= (M&(0-(v>=M))); return *this; }
    modint& operator-=(const modint n) { v -= n.v; v += (M&(0-(v<0))); return *this; }
    modint& operator*=(const modint n) { v = (v*n.v)%M; return *this; }
    modint& operator/=(const modint n) { v = (v*_pow(n.v, M-2))%M; return *this; }
    friend modint operator+(const modint n, const modint m) { return modint(n) += m; }
    friend modint operator-(const modint n, const modint m) { return modint(n) -= m; }
    friend modint operator*(const modint n, const modint m) { return modint(n) *= m; }
    friend modint operator/(const modint n, const modint m) { return modint(n) /= m; }
    modint& operator++() { return *this += 1; }
    modint& operator--() { return *this -= 1; }
    modint operator++(signed) { modint t = *this; return *this += 1, t; }
    modint operator--(signed) { modint t = *this; return *this -= 1, t; }
    modint operator+() { return *this; }
    modint operator-() { return modint(0) -= *this; }

    // O(logk) modular exponentiation
    modint pow(const int k) const {
        return k < 0 ? _pow(v, M-1-(-k%(M-1))) : _pow(v, k);
    }
    modint inv() const { return _pow(v, M-2); }
}; // in case of error remove ++ to += 1

using modi = modint<998244353>;
using modx = modint<(int)1e9+7>;

int accumulate(vi &a, function<int(int,int)> op = [] (int x, int y) {return x+y;}){
  if(sz(a) == 0) return 0;
  int ans = a[0];
  for(int i = 1; i < sz(a); i++) ans = op(ans, a[i]);
  return ans;
}

int MSB(int n){
  int i = 0;
  while(n){
    i++;
    n >>= 1;
  }
  i--;
  return i;
}

int nc2(int x){
  if(x <= 1) return 0;
  else return (x*(x-1))/2;
}

int ceil(int x, int y){
  if(x >= 0) return (x+y-1)/y;
  else return x/y;
}

const int N = 2e5+5;
// vector<int> prime(N+1, true);
// vector<modi> fact(N+10);
// vi primes;
void preSolve(){
  // prime[0] = prime[1] = false;
  // for(int i = 2; i <= N; i++){
  //   if(prime[i]){
  //     for(int j = 2*i; j <= N; j += i){
  //       prime[j] = 0;
  //     }
  //   }
  // }
  // rep(i,1,N) if(prime[i]) primes.pb(i);
  // fact[0] = 1;
  // for(int i = 1; i <= N; i++) fact[i] = fact[i-1]*i;
}

int n = -inf, m = -inf;
vector<vector<int>> adj;
vector<bool> vis;

bool cmp(pair<int,int> a, pair<int,int> b){
    if(a.first != b.first) return a.first < b.first;
    return a.second > b.second;
}

// modi ncr(int n, int r){
//   if(r < 0 || r > n) return 0;
//   return fact[n]/(fact[r]*fact[n-r]);
// }
// modi npr(int n, int r){
//   if(r < 0 || r > n) return 0;
//   return fact[n]/fact[n-r];
// }

void solve(){
  int ans; cin >> ans;
  while (abns != 1){
      print(ans);
      if (ans&1) ans /=2;
      else ans = ans*3-1;
  }
}


signed main(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);

#ifndef ONLINE_JUDGE 
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
  auto start = std::chrono::system_clock::now();
#endif

  preSolve();

  int t = 1;
  cin >> t;
  rep(tt, 1,t){
    // dbg(t);
    // cout << "Case #" << tt << ": ";
    solve();
#ifndef ONLINE_JUDGE 
    auto end = std::chrono::system_clock::now();
    std::cerr << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << Endl;
#endif
  }
#ifndef ONLINE_JUDGE 
  auto end = std::chrono::system_clock::now();
  std::cerr << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << Endl;
#endif
}

/* stuff you should look for
  * constraints
    * int overflow, array bounds
    * special cases (n=1, n = 0?)
    * do smth instead of nothing and stay organized
    * WRITE STUFF DOWN
    * DON'T GET STUCK ON ONE APPROACH
*/

why code no do the work?

 
 
 
 
  • Vote: I like it
  • -20
  • Vote: I do not like it

»
6 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

First, "if (ans&1) ans /=2;" ins't correct beacause that means that you divide by 2 than number is odd, and also you have "while(ans!=1), so you will never cout 1.

»
6 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

I gave you what you want, downvote.

»
6 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Dirty blog