Nailong2026's blog

By Nailong2026, history, 13 months ago, In English

They all use LLM to cheat, and luuia's code is CRAZY. He used stranged variable names and usless defines. This is because he want's to hide that he is cheating.

This is what make it more suspicious:

  1. They come from the same school

  2. luuia is just a specialist three months ago, but he is now a IM.

  3. zhoujiarun0216 only solve AB in ABC in 40 minutes, but he solve 5 problems in div2.

So, plz ban these accouts.

  • Vote: I like it
  • +17
  • Vote: I do not like it

»
13 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Nailong2026 (previous revision, new revision, compare).

»
13 months ago, hide # |
 
Vote: I like it +8 Vote: I do not like it

I spent about five minutes trying to decode https://mirror.codeforces.com/contest/2097/submission/317319998 and got this:

#include <bits/stdc++.h>
using namespace std;
using ll = unsigned long long;
struct node {
    vector<ll> a;
    node(int x = 0): a((x + 63) >> 6) {}
    void init(const node &B) {
        for (size_t i = 0; i < a.size();i++)a[i] ^= B.a[i];
    }
    bool get(int x) const {
        return (a[x >> 6] >> (x & 63)) & 1;
    }
    void set1(int x) {
        a[x >> 6] |= (1ull << (x & 63));
    }
    bool check() const {
        for (ll x : a)
            if (x) return false;
        return true;
    }
    int gval() const {
        for (int i = (int)a.size() - 1;i >= 0;i--) {
            if (a[i]) {
                int tt = __builtin_clzll(a[i]);
                return i * 64 + (63 - tt);
            }
        }
        return -1;
    }
};

vector<pair<int,node>> Init(vector<node> &u) {
    vector<pair<int,node>> res;
            
    for (auto &x : u) {
        for (auto &y : res) {
            if (x.get(y.first)) x.init(y.second);
        }
        if (x.check()) continue;
        int c = x.gval();
        res.push_back({c,x});
        sort(res.begin(),res.end(),[](auto &A,auto &B){ return A.first > B.first;});
    }
    return res;

}
bool Qu(const vector<pair<int,node>> &res,const vector<node> &u) {
    for (auto &_ : u) {
        node x = _;
        for (auto &y : res) {
            if (x.get(y.first))x.init(y.second);
        }
        if (!x.check())return false;
    }
    return true;
}
int main(){
    int T;cin >> T;
    while (T--) {
        int n;
        string L,R;
        cin >> n >> L >> R;
        if (n & 1) {
            cout << (L == R ? "Yes\n" : "No\n");
            continue;
        }
        if (L == R) {
            cout << "Yes\n";
            continue;
        }
        int D = __builtin_ctz(n);
        int u = 1 << D;
        int Bit = n >> D;
        vector<node> X(u,node(Bit)),Y(u,node(Bit));
        for (int i = 0;i < u;i++) {
            for (int j = 0;j < Bit;j++) {
                if (L[i * Bit + j] == '1')X[i].set1(j);
                if (R[i * Bit + j] == '1')Y[i].set1(j);
            }
        }
        auto lp = Init(X);
        auto rp = Init(Y);
        bool flg = Qu(rp,X) && Qu(lp,Y);
        cout << (flg ? "Yes\n" : "No\n");
    }
    return 0;
}

In some places the variable names I changed may not be suitable for their original purpose, but at least they can be viewed.