QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#882939#9768. A + B = C ProblemforgotmyhandleCompile Error//C++142.2kb2025-02-05 13:41:392025-02-05 13:41:40

Judging History

This is the latest submission verdict.

  • [2025-02-05 13:41:40]
  • Judged
  • [2025-02-05 13:41:39]
  • Submitted

answer

#include <bits/stdc++.h>
#define int long long
using namespace std;
void print(int x, int d) {
    for (int i = 0; i < d; i++) cout << ((x >> i) & 1);
    cout << "\n";
}
signed main() {
    int tc;
    cin >> tc;
    while (tc--) {
        int a, b, c;
        cin >> a >> b >> c;
        if (lcm(a, b) % c || lcm(a, c) % b || lcm(b, c) % a) {
            cout << "NO\n";
            continue;
        }
        // for (int i = 0; i < (1 << a); i++) {
        //     for (int j = 0; j < (1 << b); j++) {
        //         for (int k = 0; k < (1 << c); k++) {
        //             bool ok = 1;
        //             for (int l = 0; l < a * b / __gcd(a, b); l++) ok &= ((((i >> (l % a)) & 1) ^ ((j >> (l % b)) & 1)) == ((k >> (l % c)) & 1));
        //             if (ok) 
        //                 print(i, a), print(j, b), print(k, c), cout << "\n";
        //         }
        //     }
        // }
        if (a == b && b == c) {
            if (a == 2) 
                cout << "NO\n";
            else if (a == 1) 
                cout << "YES\n0\n0\n0\n";
            else {
                string A = "0", B = "00", C;
                for (int i = 1; i < a; i++) A += '1';
                for (int i = 1; i < b - 1; i++) B += '1';
                cout << "YES\n";
                cout << A << "\n" << B << "\n";
                for (int i = 0; i < c; i++) cout << (char)('0' + (A[i % a] ^ B[i % b]));
                cout << "\n";
            }
            continue;
        }
        string aa, bb, cc;
        string *A = &aa, *B = &bb, *C = &cc;
        if (a > b) 
            swap(a, b), swap(A, B);
        if (a > c) 
            swap(a, c), swap(A, C);
        if (b > c) 
            swap(b, c), swap(B, C);
        *A = "0", *B = "0";
        // if (a * b / __gcd(a, b) != c) {
        //     cout << "NO\n";
        //     continue;
        // }
        for (int i = 1; i < a; i++) *A += '1';
        for (int i = 1; i < b; i++) *B += '1';
        cout << "YES\n";
        for (int i = 0; i < c; i++) *C += (char)('0' + ((*A)[i % a] ^ (*B)[i % b]));
        cout << aa << "\n" << bb << "\n" << cc << "\n";
    }
    return 0;
}
/*
4 6 2
011001100110
011011011011
000010111101
*/

Details

answer.code: In function ‘int main()’:
answer.code:14:13: error: ‘lcm’ was not declared in this scope
   14 |         if (lcm(a, b) % c || lcm(a, c) % b || lcm(b, c) % a) {
      |             ^~~