Submission #1181388

#TimeUsernameProblemLanguageResultExecution timeMemory
1181388CaiWinDaoMensza (COI22_mensza)C++20
100 / 100
1338 ms33376 KiB
// grok

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int L;
    cin >> L; // Độ dài tối đa của mảng a và b
    int Q;
    cin >> Q; // Số truy vấn

    for (int q = 0; q < Q; q++) {
        string type;
        cin >> type;

        if (type == "alojzije") {
            int A;
            cin >> A;
            vector<int> a;
            // Mã hóa A thành các bit
            for (int i = 0; i <= 18; i++) {
                if (A & (1 << i)) { // Kiểm tra bit thứ i
                    a.push_back(i);
                }
            }
            // Xuất mảng a
            cout << a.size();
            for (int num : a) {
                cout << " " << num;
            }
            cout << endl;
        }
        else if (type == "benjamin") {
            int B;
            cin >> B;
            vector<int> b;
            // Mã hóa B thành các bit, cộng 100 để phân biệt
            for (int i = 0; i <= 18; i++) {
                if (B & (1 << i)) {
                    b.push_back(100 + i);
                }
            }
            // Xuất mảng b
            cout << b.size();
            for (int num : b) {
                cout << " " << num;
            }
            cout << endl;
        }
        else if (type == "cecilija") {
            int lc;
            cin >> lc; // Độ dài mảng c
            vector<int> c(lc);
            for (int i = 0; i < lc; i++) {
                cin >> c[i];
            }
            int A = 0, B = 0;
            // Giải mã từ mảng c
            for (int num : c) {
                if (0 <= num && num <= 18) {
                    A |= (1 << num); // Set bit tương ứng của A
                }
                else if (100 <= num && num <= 118) {
                    int i = num - 100;
                    B |= (1 << i); // Set bit tương ứng của B
                }
            }
            // So sánh và xuất kết quả
            if (A > B) {
                cout << "A" << endl;
            }
            else {
                cout << "B" << endl;
            }
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...