QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#534409#9114. Black or White 2Goldenglow1427RE 0ms1620kbC++171.9kb2024-08-27 09:23:422024-08-27 09:23:42

Judging History

你现在查看的是最新测评结果

  • [2024-08-27 09:23:42]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:1620kb
  • [2024-08-27 09:23:42]
  • 提交

answer

/*
ID: Victor Chen [mail_vi1]
PROG: QOJ 9114
LANG: C++
*/

#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cassert>

using namespace std;

const int Maxn = 1500;

int T;

int n, m, k;
bool rev;

int mp[Maxn+10][Maxn+10];

void solve()
{
    scanf("%d%d%d", &n, &m, &k);
    if(k*2 > n*m)
        k = n*m-k, rev = true;
    else
        rev = false;
    
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            mp[i][j] = 0;

    if(k == 1)
        mp[1][1] = 1;
    else if(k == 2)
        mp[1][1] = mp[n][m] = 1;
    else if(k >= 3)
    {
        int rep = k / 3, rem = k % 3;

        int curi = -1, curj = 10000;
        for(int i=1; i<=rep; i++)
        {
            curj += 2;
            if(curj >= m)
                curj = 1, curi += 2;
            
            mp[curi][curj] = mp[curi+1][curj] = mp[curi][curj+1] = 1;
        }

        if(rem == 1)
            mp[n][m] = 1;
        else if(rem == 2)
        {
            if(n == 2)
                mp[curi+1][curj+1] = mp[curi][curj+2] = 1;
            else if(m == 2)
                mp[curi+1][curj+1] = mp[curi+2][curj] = 1;
            else
            {
                mp[n][m] = 1;
                if(n == 3)
                    mp[1][m] = 1;
                else
                    mp[n][1] = 1;
            }

            // assert(mp[n][m]+mp[n-1][m]+mp[n][m-1]+mp[n-1][m-1] != 2);
            assert(mp[n][1]+mp[n][2]+mp[n-1][1]+mp[n-1][2] != 2);
        }
    }

    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
            if(rev == true)
                printf("%d", 1-mp[i][j]);
            else
                printf("%d", mp[i][j]);
            
        printf("\n");
    }
}

int main()
{
    scanf("%d", &T);
    while(T != 0)
    {
        T--;
        solve();
    }
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 1620kb

input:

2
2 2 2
2 3 0

output:

10
01
000
000

result:

ok Output is valid. OK.

Test #2:

score: -100
Runtime Error

input:

27520
2 2 0
2 2 1
2 2 2
2 2 3
2 2 4
2 3 0
2 3 1
2 3 2
2 3 3
2 3 4
2 3 5
2 3 6
3 2 0
3 2 1
3 2 2
3 2 3
3 2 4
3 2 5
3 2 6
3 3 0
3 3 1
3 3 2
3 3 3
3 3 4
3 3 5
3 3 6
3 3 7
3 3 8
3 3 9
2 4 0
2 4 1
2 4 2
2 4 3
2 4 4
2 4 5
2 4 6
2 4 7
2 4 8
3 4 0
3 4 1
3 4 2
3 4 3
3 4 4
3 4 5
3 4 6
3 4 7
3 4 8
3 4 9
3 4 10...

output:


result: