Блог пользователя KnownAsJason

Автор KnownAsJason, история, 22 часа назад, По-английски

I was looking at errichito’s blog and noticed he wasn’t lgm and looked at his blog and his recent contest. He recently participated in the spectral cup and dropped over a hundred points. I looked at his position and saw many around him who were much lower rated than him but one stood out, prantamohajn.

This person is currently roughly 1100 rated and this was his second contest beating a former lgm no less. Not entirely something that is incriminating but certainly suspicious to perform at a very high level in second contest. Potentially further incriminating would be just 4 days prior this person put up a result of getting around 3000th in a div 2. This is a pretty absurd improvement and i believe that this mostly rules out the statement this person is simply a former experienced person who moved to codeforces.

Here is some of their code in the recent contest,

include

using namespace std;

typedef unsigned long long ull;

void solve() { int n; if (!(cin >> n)) return;

ull total_mask = 0;
for (int i = 0; i < n; i++) total_mask |= (1ULL << i);

// Initial element choice
cout << 0 << endl;

// First query to distinguish k=1 from k=2,3
cout << "I 0" << endl;
int size_s;
if (!(cin >> size_s)) exit(0);
if (size_s == -1) exit(0);

if (size_s == 1) {
    cout << "I " << total_mask << endl;
    if (!(cin >> size_s)) exit(0);
    if (size_s == -1) exit(0);

    // Binary search for c in the set S = {0, c}.
    ull low = 1, high = total_mask;
    while (low < high) {
        ull mid = low + (high - low + 1) / 2;
        cout << "Q " << mid << endl;
        int res;
        if (!(cin >> res)) exit(0);
        if (res == -1) exit(0);
        if (res >= 1) low = mid; // c is in S and c >= mid
        else high = mid - 1;
    }
    cout << "A 1 " << low << endl;
} else {
    // Case k=2 or 3: f(0)=c, so S = {0, c}.
    // Binary search for c in the set S = {0, c}.
    ull low = 1, high = total_mask;
    while (low < high) {
        ull mid = low + (high - low + 1) / 2;
        cout << "Q " << mid << endl;
        int res;
        if (!(cin >> res)) exit(0);
        if (res == -1) exit(0);
        if (res >= 1) low = mid;
        else high = mid - 1;
    }
    ull c = low;

    if (c == total_mask) {
        // Distinguish k=2 and k=3 by inserting f(1).
        cout << "I 1" << endl;
        if (!(cin >> size_s)) exit(0);
        if (size_s == -1) exit(0);
        // If k=2, f(1) = 1 | total_mask = total_mask, size remains 2.
        // If k=3, f(1) = 1 ^ total_mask = total_mask - 1, size becomes 3.
        if (size_s == 2) {
            cout << "A 2 " << c << endl;
        } else {
            cout << "A 3 " << c << endl;
        }
    } else {
        // Distinguish k=2 and k=3 by inserting f(total_mask).
        cout << "I " << total_mask << endl;
        if (!(cin >> size_s)) exit(0);
        if (size_s == -1) exit(0);

        // Check if total_mask was added to the set.
        cout << "Q " << total_mask << endl;
        int res;
        if (!(cin >> res)) exit(0);
        if (res == -1) exit(0);
        // If k=2, total_mask | c = total_mask.
        // If k=3, total_mask ^ c = ~c < total_mask (as c >= 1).
        if (res >= 1) {
            cout << "A 2 " << c << endl;
        } else {
            cout << "A 3 " << c << endl;
        }
    }
}

}

int main() { // Basic setup for I/O efficiency. ios_base::sync_with_stdio(false); cin.tie(NULL);

int t;
if (!(cin >> t)) return 0;
while (t--) {
    solve();
}
return 0;

}

While a definite verdict cannot be made, I feel the likely occurrence is obvious yet again, these are simply observations and not a formal accusation.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -4
  • Проголосовать: не нравится

Автор KnownAsJason, история, 10 месяцев назад, По-английски

Hello codenforcers. I hope you all are having a wonderful day. For those of you who downvoted my previous post, I appreciate the constructive criticism and will not engage in such clownery moving forward. Anyway here is my next tip is that when looking at certain problems that do not have an extremely tight time complexity, you can often go with suboptimal little additions that make the code significantly easier. I think that my example of this is going to be just sometimes making extra array or vector that you can use to call back to other information later which may of course differ from the intended solution and might be slower but often in many of the easier problems you will not be very close to the time limit so you should be fine. Also remember to not be close to MLE either. Take this how you will. Of course I would like to add a very nice photo of a brick :)

Полный текст и комментарии »

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится

Автор KnownAsJason, история, 10 месяцев назад, По-английски

Welcome to my first blog. I’m calling it tips and bricks because tips and tricks is a bit cliche. My first tip is that just keep solving problems. My first brick was when I was trying to shoot from half court and it bricked so hard on the rim :(.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -11
  • Проголосовать: не нравится