QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#122152#6309. AqreeweRE 1ms3528kbC++143.4kb2023-07-09 16:24:512023-07-09 16:24:52

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-07-09 16:24:52]
  • Judged
  • Verdict: RE
  • Time: 1ms
  • Memory: 3528kb
  • [2023-07-09 16:24:51]
  • Submitted

answer

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

#define fopen                                   \
    freopen("E:/vscode/oi/in.txt", "r", stdin); \
    freopen("E:/vscode/oi/out.txt", "w", stdout);
#define fc         \
    fclose(stdin); \
    fclose(stdout);
#define ios                  \
    ios::sync_with_stdio(0); \
    cin.tie(0);

#define ll long long
#define vint vector<int>
#define pii pair<int, int>
#define pdd pair<double, double>
#define vnode vector<node>
#define ld long double
#define ls(x) (x << 1)
#define rs(x) (x << 1 | 1)
#define lowbit(x) (x & -x)

const int N = 1e3 + 10, M = 4e5 + 10;
const double eps = 1e-12;
const double PI = acos(-1);

void solve()
{
    int n, m, res = 0;
    cin >> n >> m;
    if (n <= 3 && m <= 3)
    {
        res = n * m;
        cout << res << '\n';
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
                cout << '1';
            cout << '\n';
        }
    }
    else if (n <= 3)
    {
        res = n * m;
        vector<vint> a(n + 1, vint(m + 1, 1));
        for (int i = 1; i <= n; i++)
            if (i & 1)
                for (int j = 2; j <= m; j += 4)
                    a[i][j] = 0, res--;
            else
                for (int j = 4; j <= m; j += 4)
                    a[i][j] = 0, res--;
        cout << res << '\n';
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
                cout << a[i][j];
            cout << '\n';
        }
    }
    else if (m <= 3)
    {
        res = n * m;
        vector<vint> a(n + 1, vint(m + 1, 1));
        for (int i = 1; i <= n; i++)
            if (i & 1)
                for (int j = 2; j <= m; j += 4)
                    a[j][i] = 0, res--;
            else
                for (int j = 4; j <= m; j += 4)
                    a[j][i] = 0, res--;
        cout << res << '\n';
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
                cout << a[i][j];
            cout << '\n';
        }
    }
    else
    {
        vector<vint> a(n + 5, vint(m + 5, 1)), s(n + 5, vint(m + 5));
        for (int i = 1; i <= n + 4; i++)
            for (int j = 1; j <= m + 4; j++)
            {
                if (i % 4 == 1 && j % 4 == 0)
                    a[i][j] = 0;
                else if (i % 4 == 2 && j % 4 == 2)
                    a[i][j] = 0;
                else if (i % 4 == 3 && j % 4 == 1)
                    a[i][j] = 0;
                else if (i % 4 == 0 && j % 4 == 3)
                    a[i][j] = 0;
                s[i][j] = s[i - 1][j - 1] + a[i][j] - s[i - 1][j] - s[i][j - 1];
            }
        int x = 0, y = 0;
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
            {
                int sum = s[n + i][m + j] + s[i][j] - s[n + i][j] - s[i][m + j];
                if (sum > res)
                {
                    res = sum;
                    x = i, y = j;
                }
            }
        cout << res << '\n';
        for (int i = 1 + x; i <= n + x; i++)
        {
            for (int j = 1 + y; j <= m + y; j++)
                cout << a[i][j];
            cout << '\n';
        }
    }
}

signed main()
{
    ios;
    // fopen;

    int t = 1;
    srand(time(0));

    cin >> t;
    for (int i = 1; i <= t; i++)
    {
        solve();
    }

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3528kb

input:

3
2 2
3 4
3 8

output:

4
11
11
9
1011
1110
1011
18
10111011
11101110
10111011

result:

ok ok (3 test cases)

Test #2:

score: -100
Runtime Error

input:

361
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
2 10
2 11
2 12
2 13
2 14
2 15
2 16
2 17
2 18
2 19
2 20
3 2
3 3
3 4
3 5
3 6
3 7
3 8
3 9
3 10
3 11
3 12
3 13
3 14
3 15
3 16
3 17
3 18
3 19
3 20
4 2
4 3
4 4
4 5
4 6
4 7
4 8
4 9
4 10
4 11
4 12
4 13
4 14
4 15
4 16
4 17
4 18
4 19
4 20
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
5 1...

output:

4
11
11
6
111
111
6
1011
1110
8
10111
11101
9
101110
111011
11
1011101
1110111
12
10111011
11101110
14
101110111
111011101
15
1011101110
1110111011
17
10111011101
11101110111
18
101110111011
111011101110
20
1011101110111
1110111011101
21
10111011101110
11101110111011
23
101110111011101
1110111011101...

result: