QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#884791 | #9768. A + B = C Problem | Estelle_N | WA | 0ms | 5864kb | C++14 | 2.7kb | 2025-02-06 10:48:45 | 2025-02-06 10:48:46 |
Judging History
answer
#include <cstdio>
#include <algorithm>
#define int long long
using namespace std;
const int N = 1000005;
int T, A, B, C, P[N], Q[N], R[N];
int gcd(int x, int y)
{
return __gcd(x, y);
}
int lcm(int x, int y)
{
return x * y / __gcd(x, y);
}
void work()
{
scanf("%lld%lld%lld", &A, &B, &C);
if(A == 2 && B == 2 && C == 2)
return printf("NO\n"), void();
if(lcm(B, C) % A || lcm(A, C) % B || lcm(A, B) % C)
return printf("NO\n"), void();
if(A == 1 && B == 1 && C == 1)
return printf("YES\n0\n0\n0\n"), void();
int g = gcd(A, gcd(B, C));
int p = gcd(A / g, B / g), q = gcd(A / g, C / g), r = gcd(B / g, C / g);
if(p == 1 && q == 1 && r == 1)
{
printf("YES\n");
for(int i = 1; i <= g - 2; ++ i)
printf("0");
printf("01\n");
for(int i = 1; i <= g - 2; ++ i)
printf("0");
printf("10\n");
for(int i = 1; i <= g - 2; ++ i)
printf("0");
printf("11\n");
return;
}
if(p == 1 && q == 1)
{
printf("YES\n");
for(int i = 1; i <= g - 1; ++ i)
printf("0");
printf("1\n");
for(int i = 1; i <= g * r - 1; ++ i)
printf("0");
printf("1\n");
for(int i = 1; i <= g * r - 1; ++ i)
printf("%d", i % g == 0);
printf("0\n");
return;
}
if(p == 1 && r == 1)
{
printf("YES\n");
for(int i = 1; i <= g * q - 1; ++ i)
printf("0");
printf("1\n");
for(int i = 1; i <= g - 1; ++ i)
printf("0");
printf("1\n");
for(int i = 1; i <= g * q - 1; ++ i)
printf("%d", i % g == 0);
printf("0\n");
return;
}
if(q == 1 && r == 1)
{
printf("YES\n");
for(int i = 1; i <= g * p - 1; ++ i)
printf("0");
printf("1\n");
for(int i = 1; i <= g * p - 1; ++ i)
printf("%d", i % g == 0);
printf("0\n");
for(int i = 1; i <= g - 1; ++ i)
printf("0");
printf("1\n");
return;
}
P[0] = Q[0] = P[A - 1] = Q[B - 1] = 1;
for(int i = 1; i < A - 1; ++ i)
P[i] = 0;
for(int i = 1; i < B - 1; ++ i)
Q[i] = 0;
printf("YES\n");
for(int i = 0; i < A; ++ i)
printf("%lld", P[i]);
printf("\n");
for(int i = 0; i < B; ++ i)
printf("%lld", Q[i]);
printf("\n");
for(int i = 0; i < C; ++ i)
printf("%lld", P[i % A] ^ Q[i % B]);
printf("\n");
}
signed main()
{
scanf("%lld", &T);
while(T --)
work();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 5864kb
input:
2 2 3 6 2 3 5
output:
YES 11 101 010010 NO
result:
wrong answer Incorrect period 2 3 6 (test case 1)