- P192's solution
P192's Solution
- 2025-9-4 22:00:09 @
原博客对解法的描述已经足够详细,因此这里只给出代码。
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long T, n, m;
cin >> T;
while (T--)
{
cin >> n >> m;
if (n == 1)
{
if (m == 0) puts("1");
else puts("!");
continue;
}
if (m > (n / 2) * (n - n / 2))
{
for (int i = 1; i <= n; i++)
putchar('!');
puts("");
continue;
}
for (int i = 1; i <= m / (n / 2); i++)
putchar('0');
for (int i = n / 2; i >= m % (n / 2) + 1; i--)
putchar('1');
if (m < (n / 2) * (n - n / 2)) putchar('0');
for (int i = m % (n / 2); i >= 1; i--)
putchar('1');
for (int i = n / 2 + m / (n / 2) + 1 + 1; i <= n; i++)
putchar('0');
puts("");
}
return 0;
}