QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#559223#1153. Art Classmakrav#AC ✓248ms8024kbC++202.9kb2024-09-11 20:54:182024-09-11 20:54:19

Judging History

This is the latest submission verdict.

  • [2024-09-11 20:54:19]
  • Judged
  • Verdict: AC
  • Time: 248ms
  • Memory: 8024kb
  • [2024-09-11 20:54:18]
  • Submitted

artclass

#include "artclass.h"
#include <bits/stdc++.h>

using namespace std;

mt19937 rnd(time(NULL));

const int SAME = 10;
const int C4 = 50, R4 = 20;
const int F = 115;

int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
    int cnt_green = 0;
    for (int i = 0; i < H; i++) {
        for (int j = 0; j < W; j++) {
            cnt_green += (G[i][j] - R[i][j] - B[i][j] >= 70);
        }
    }
    if (cnt_green >= H * W * 2 / 5) return 2;
    auto check = [&](int i, int j, int i1, int j1) {
        if (i1 < 0 || i1 >= H || j1 < 0 || j1 >= W) return false;
        if (abs(R[i][j]-R[i1][j1]) + abs(G[i][j]-G[i1][j1]) + abs(B[i][j]-B[i1][j1]) <= SAME) return true;
        return false;
    };
    auto check4 = [&](int i, int j, int i1, int j1) {
        if (i1 < 0 || i1 >= H || j1 < 0 || j1 >= W) return false;
        if (abs(R[i][j]-R[i1][j1]) + abs(G[i][j]-G[i1][j1]) + abs(B[i][j]-B[i1][j1]) <= C4) return true;
        return false;
    };
    auto check23 = [&](int i, int j, int i1, int j1) {
        if (i1 < 0 || i1 >= H || j1 < 0 || j1 >= W) return false;
        if (abs(R[i][j]-R[i1][j1]) + abs(G[i][j]-G[i1][j1]) + abs(B[i][j]-B[i1][j1]) > F) return true;
        return false;
    };
    int fuck = 1;
    for (int pnum = 0; pnum < R4; pnum++) {
        int i = rnd() % H, j = rnd() % W;
        queue<pair<int, int>> q;
        vector<vector<int>> used(H, vector<int>(W));
        q.push({i, j});
        int cnt = 0;
        while (!q.empty()) {
            auto [I, J] = q.front();
            used[I][J] = 1;
            q.pop();
            cnt++;
            if (I-1 >= 0 && !used[I-1][J]&&check4(I,J,I-1,J)){
                used[I-1][J]=1;
                q.push({I-1,J});
            }
            if (J-1>=0&&!used[I][J-1]&&check4(I,J,I,J-1)){
                used[I][J-1]=1;
                q.push({I,J-1});
            }
            if(I+1<H&&!used[I+1][J]&&check4(I,J,I+1,J)){
                used[I+1][J]=1;
                q.push({I+1,J});
            }
            if(J+1<W&&!used[I][J+1]&&check4(I,J,I,J+1)){
                used[I][J+1]=1;
                q.push({I,J+1});
            }
        }
        if (cnt < H * W / 5) fuck = 0;
    }
    if (fuck) return 4;

    int cnt = 0;
    vector<pair<int, int>> dir={{0,1},{1,0},{0,-1},{-1,0}};
    for (int i = 0; i < H; i++) {
        for (int j = 0; j < W; j++) {
            for (auto d : dir) {
                cnt += check(i, j, i + d.first, j + d.second);
            }
        }
    }
    if (cnt >= H * W * 2) {
        return 1;
    }
    int cnt_bad =0;
    for (int i = 0; i < H; i++) {
        for (int j = 0; j < W; j++) {
            bool hassos = false;
            for (auto d : dir) {
                if (check23(i, j, i+d.first, j+d.second))hassos=true;
            }
            cnt_bad+=hassos;
        }
    }
    if (cnt_bad > H*W/3)return 3;
    return 2;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 40ms
memory: 5584kb

output:

1

result:

ok 1 number(s): "1"

Test #2:

score: 100
Accepted
time: 76ms
memory: 7576kb

output:

1

result:

ok 1 number(s): "1"

Test #3:

score: 100
Accepted
time: 90ms
memory: 7652kb

output:

1

result:

ok 1 number(s): "1"

Test #4:

score: 100
Accepted
time: 66ms
memory: 7388kb

output:

1

result:

ok 1 number(s): "1"

Test #5:

score: 100
Accepted
time: 94ms
memory: 7736kb

output:

1

result:

ok 1 number(s): "1"

Test #6:

score: 100
Accepted
time: 82ms
memory: 7268kb

output:

1

result:

ok 1 number(s): "1"

Test #7:

score: 100
Accepted
time: 98ms
memory: 7368kb

output:

1

result:

ok 1 number(s): "1"

Test #8:

score: 100
Accepted
time: 112ms
memory: 7228kb

output:

1

result:

ok 1 number(s): "1"

Test #9:

score: 0
Wrong Answer
time: 86ms
memory: 7360kb

output:

2

result:

wrong answer 1st numbers differ - expected: '1', found: '2'

Test #10:

score: 100
Accepted
time: 92ms
memory: 7364kb

output:

1

result:

ok 1 number(s): "1"

Test #11:

score: 100
Accepted
time: 88ms
memory: 7568kb

output:

1

result:

ok 1 number(s): "1"

Test #12:

score: 0
Wrong Answer
time: 84ms
memory: 7260kb

output:

2

result:

wrong answer 1st numbers differ - expected: '1', found: '2'

Test #13:

score: 0
Wrong Answer
time: 70ms
memory: 7672kb

output:

2

result:

wrong answer 1st numbers differ - expected: '1', found: '2'

Test #14:

score: 0
Wrong Answer
time: 104ms
memory: 8024kb

output:

2

result:

wrong answer 1st numbers differ - expected: '1', found: '2'

Test #15:

score: 100
Accepted
time: 106ms
memory: 7772kb

output:

1

result:

ok 1 number(s): "1"

Test #16:

score: 100
Accepted
time: 92ms
memory: 7744kb

output:

1

result:

ok 1 number(s): "1"

Test #17:

score: 100
Accepted
time: 94ms
memory: 7384kb

output:

1

result:

ok 1 number(s): "1"

Test #18:

score: 100
Accepted
time: 98ms
memory: 7776kb

output:

1

result:

ok 1 number(s): "1"

Test #19:

score: 100
Accepted
time: 80ms
memory: 7176kb

output:

1

result:

ok 1 number(s): "1"

Test #20:

score: 100
Accepted
time: 100ms
memory: 7776kb

output:

1

result:

ok 1 number(s): "1"

Test #21:

score: 100
Accepted
time: 92ms
memory: 7308kb

output:

1

result:

ok 1 number(s): "1"

Test #22:

score: 100
Accepted
time: 90ms
memory: 7188kb

output:

1

result:

ok 1 number(s): "1"

Test #23:

score: 100
Accepted
time: 88ms
memory: 7744kb

output:

1

result:

ok 1 number(s): "1"

Test #24:

score: 100
Accepted
time: 94ms
memory: 7324kb

output:

1

result:

ok 1 number(s): "1"

Test #25:

score: 100
Accepted
time: 170ms
memory: 7788kb

output:

1

result:

ok 1 number(s): "1"

Test #26:

score: 100
Accepted
time: 84ms
memory: 7612kb

output:

1

result:

ok 1 number(s): "1"

Test #27:

score: 100
Accepted
time: 50ms
memory: 7428kb

output:

1

result:

ok 1 number(s): "1"

Test #28:

score: 100
Accepted
time: 146ms
memory: 7728kb

output:

1

result:

ok 1 number(s): "1"

Test #29:

score: 100
Accepted
time: 70ms
memory: 7792kb

output:

1

result:

ok 1 number(s): "1"

Test #30:

score: 0
Wrong Answer
time: 130ms
memory: 7780kb

output:

2

result:

wrong answer 1st numbers differ - expected: '1', found: '2'

Test #31:

score: 100
Accepted
time: 88ms
memory: 7684kb

output:

1

result:

ok 1 number(s): "1"

Test #32:

score: 100
Accepted
time: 96ms
memory: 7152kb

output:

1

result:

ok 1 number(s): "1"

Test #33:

score: 100
Accepted
time: 196ms
memory: 7412kb

output:

2

result:

ok 1 number(s): "2"

Test #34:

score: 0
Wrong Answer
time: 200ms
memory: 7672kb

output:

4

result:

wrong answer 1st numbers differ - expected: '2', found: '4'

Test #35:

score: 100
Accepted
time: 218ms
memory: 7600kb

output:

2

result:

ok 1 number(s): "2"

Test #36:

score: 100
Accepted
time: 202ms
memory: 7392kb

output:

2

result:

ok 1 number(s): "2"

Test #37:

score: 100
Accepted
time: 150ms
memory: 6640kb

output:

2

result:

ok 1 number(s): "2"

Test #38:

score: 100
Accepted
time: 130ms
memory: 7076kb

output:

2

result:

ok 1 number(s): "2"

Test #39:

score: 100
Accepted
time: 182ms
memory: 7416kb

output:

2

result:

ok 1 number(s): "2"

Test #40:

score: 100
Accepted
time: 190ms
memory: 7888kb

output:

2

result:

ok 1 number(s): "2"

Test #41:

score: 0
Wrong Answer
time: 188ms
memory: 7296kb

output:

4

result:

wrong answer 1st numbers differ - expected: '2', found: '4'

Test #42:

score: 100
Accepted
time: 174ms
memory: 6892kb

output:

2

result:

ok 1 number(s): "2"

Test #43:

score: 100
Accepted
time: 192ms
memory: 7592kb

output:

2

result:

ok 1 number(s): "2"

Test #44:

score: 100
Accepted
time: 218ms
memory: 7540kb

output:

2

result:

ok 1 number(s): "2"

Test #45:

score: 100
Accepted
time: 182ms
memory: 7472kb

output:

2

result:

ok 1 number(s): "2"

Test #46:

score: 0
Wrong Answer
time: 84ms
memory: 6240kb

output:

3

result:

wrong answer 1st numbers differ - expected: '2', found: '3'

Test #47:

score: 100
Accepted
time: 248ms
memory: 7876kb

output:

2

result:

ok 1 number(s): "2"

Test #48:

score: 100
Accepted
time: 148ms
memory: 7032kb

output:

2

result:

ok 1 number(s): "2"

Test #49:

score: 100
Accepted
time: 200ms
memory: 7400kb

output:

2

result:

ok 1 number(s): "2"

Test #50:

score: 0
Wrong Answer
time: 172ms
memory: 6828kb

output:

4

result:

wrong answer 1st numbers differ - expected: '2', found: '4'

Test #51:

score: 100
Accepted
time: 176ms
memory: 7240kb

output:

2

result:

ok 1 number(s): "2"

Test #52:

score: 100
Accepted
time: 240ms
memory: 7800kb

output:

2

result:

ok 1 number(s): "2"

Test #53:

score: 100
Accepted
time: 214ms
memory: 7184kb

output:

2

result:

ok 1 number(s): "2"

Test #54:

score: 100
Accepted
time: 224ms
memory: 7852kb

output:

2

result:

ok 1 number(s): "2"

Test #55:

score: 0
Wrong Answer
time: 238ms
memory: 7060kb

output:

4

result:

wrong answer 1st numbers differ - expected: '2', found: '4'

Test #56:

score: 100
Accepted
time: 178ms
memory: 7556kb

output:

2

result:

ok 1 number(s): "2"

Test #57:

score: 100
Accepted
time: 140ms
memory: 6516kb

output:

2

result:

ok 1 number(s): "2"

Test #58:

score: 100
Accepted
time: 198ms
memory: 6988kb

output:

2

result:

ok 1 number(s): "2"

Test #59:

score: 100
Accepted
time: 194ms
memory: 7772kb

output:

2

result:

ok 1 number(s): "2"

Test #60:

score: 0
Wrong Answer
time: 162ms
memory: 6908kb

output:

4

result:

wrong answer 1st numbers differ - expected: '2', found: '4'

Test #61:

score: 100
Accepted
time: 204ms
memory: 7788kb

output:

2

result:

ok 1 number(s): "2"

Test #62:

score: 100
Accepted
time: 212ms
memory: 7240kb

output:

2

result:

ok 1 number(s): "2"

Test #63:

score: 100
Accepted
time: 188ms
memory: 6780kb

output:

2

result:

ok 1 number(s): "2"

Test #64:

score: 100
Accepted
time: 194ms
memory: 7432kb

output:

2

result:

ok 1 number(s): "2"

Test #65:

score: 100
Accepted
time: 172ms
memory: 6836kb

output:

2

result:

ok 1 number(s): "2"

Test #66:

score: 100
Accepted
time: 144ms
memory: 6256kb

output:

2

result:

ok 1 number(s): "2"

Test #67:

score: 100
Accepted
time: 176ms
memory: 7328kb

output:

2

result:

ok 1 number(s): "2"

Test #68:

score: 100
Accepted
time: 168ms
memory: 7396kb

output:

2

result:

ok 1 number(s): "2"

Test #69:

score: 100
Accepted
time: 56ms
memory: 6888kb

output:

3

result:

ok 1 number(s): "3"

Test #70:

score: 100
Accepted
time: 40ms
memory: 6448kb

output:

3

result:

ok 1 number(s): "3"

Test #71:

score: 100
Accepted
time: 48ms
memory: 5460kb

output:

3

result:

ok 1 number(s): "3"

Test #72:

score: 100
Accepted
time: 58ms
memory: 6616kb

output:

3

result:

ok 1 number(s): "3"

Test #73:

score: 100
Accepted
time: 50ms
memory: 6920kb

output:

3

result:

ok 1 number(s): "3"

Test #74:

score: 100
Accepted
time: 58ms
memory: 6912kb

output:

3

result:

ok 1 number(s): "3"

Test #75:

score: 100
Accepted
time: 22ms
memory: 6276kb

output:

3

result:

ok 1 number(s): "3"

Test #76:

score: 100
Accepted
time: 44ms
memory: 7260kb

output:

3

result:

ok 1 number(s): "3"

Test #77:

score: 100
Accepted
time: 56ms
memory: 7004kb

output:

3

result:

ok 1 number(s): "3"

Test #78:

score: 100
Accepted
time: 42ms
memory: 6892kb

output:

3

result:

ok 1 number(s): "3"

Test #79:

score: 100
Accepted
time: 70ms
memory: 6580kb

output:

3

result:

ok 1 number(s): "3"

Test #80:

score: 100
Accepted
time: 16ms
memory: 4760kb

output:

3

result:

ok 1 number(s): "3"

Test #81:

score: 100
Accepted
time: 40ms
memory: 6624kb

output:

3

result:

ok 1 number(s): "3"

Test #82:

score: 100
Accepted
time: 64ms
memory: 7152kb

output:

3

result:

ok 1 number(s): "3"

Test #83:

score: 100
Accepted
time: 140ms
memory: 7564kb

output:

3

result:

ok 1 number(s): "3"

Test #84:

score: 100
Accepted
time: 54ms
memory: 6864kb

output:

3

result:

ok 1 number(s): "3"

Test #85:

score: 100
Accepted
time: 68ms
memory: 6928kb

output:

3

result:

ok 1 number(s): "3"

Test #86:

score: 100
Accepted
time: 118ms
memory: 7384kb

output:

3

result:

ok 1 number(s): "3"

Test #87:

score: 100
Accepted
time: 58ms
memory: 6828kb

output:

3

result:

ok 1 number(s): "3"

Test #88:

score: 100
Accepted
time: 40ms
memory: 6464kb

output:

3

result:

ok 1 number(s): "3"

Test #89:

score: 100
Accepted
time: 18ms
memory: 4596kb

output:

3

result:

ok 1 number(s): "3"

Test #90:

score: 100
Accepted
time: 64ms
memory: 6796kb

output:

3

result:

ok 1 number(s): "3"

Test #91:

score: 100
Accepted
time: 52ms
memory: 6916kb

output:

3

result:

ok 1 number(s): "3"

Test #92:

score: 100
Accepted
time: 60ms
memory: 6720kb

output:

3

result:

ok 1 number(s): "3"

Test #93:

score: 100
Accepted
time: 44ms
memory: 5660kb

output:

3

result:

ok 1 number(s): "3"

Test #94:

score: 100
Accepted
time: 60ms
memory: 6132kb

output:

3

result:

ok 1 number(s): "3"

Test #95:

score: 100
Accepted
time: 38ms
memory: 6496kb

output:

3

result:

ok 1 number(s): "3"

Test #96:

score: 100
Accepted
time: 68ms
memory: 7748kb

output:

3

result:

ok 1 number(s): "3"

Test #97:

score: 100
Accepted
time: 68ms
memory: 7028kb

output:

3

result:

ok 1 number(s): "3"

Test #98:

score: 100
Accepted
time: 50ms
memory: 6544kb

output:

3

result:

ok 1 number(s): "3"

Test #99:

score: 100
Accepted
time: 72ms
memory: 6284kb

output:

3

result:

ok 1 number(s): "3"

Test #100:

score: 100
Accepted
time: 66ms
memory: 6952kb

output:

3

result:

ok 1 number(s): "3"

Test #101:

score: 100
Accepted
time: 68ms
memory: 6984kb

output:

3

result:

ok 1 number(s): "3"

Test #102:

score: 100
Accepted
time: 56ms
memory: 5748kb

output:

3

result:

ok 1 number(s): "3"

Test #103:

score: 100
Accepted
time: 38ms
memory: 6700kb

output:

3

result:

ok 1 number(s): "3"

Test #104:

score: 100
Accepted
time: 82ms
memory: 7292kb

output:

3

result:

ok 1 number(s): "3"

Test #105:

score: 100
Accepted
time: 102ms
memory: 7372kb

output:

4

result:

ok 1 number(s): "4"

Test #106:

score: 100
Accepted
time: 122ms
memory: 7436kb

output:

4

result:

ok 1 number(s): "4"

Test #107:

score: 0
Wrong Answer
time: 56ms
memory: 6844kb

output:

1

result:

wrong answer 1st numbers differ - expected: '4', found: '1'

Test #108:

score: 100
Accepted
time: 162ms
memory: 7600kb

output:

4

result:

ok 1 number(s): "4"

Test #109:

score: 100
Accepted
time: 136ms
memory: 7536kb

output:

4

result:

ok 1 number(s): "4"

Test #110:

score: 100
Accepted
time: 32ms
memory: 7096kb

output:

4

result:

ok 1 number(s): "4"

Test #111:

score: 100
Accepted
time: 136ms
memory: 6892kb

output:

4

result:

ok 1 number(s): "4"

Test #112:

score: 100
Accepted
time: 150ms
memory: 7560kb

output:

4

result:

ok 1 number(s): "4"

Test #113:

score: 100
Accepted
time: 184ms
memory: 7768kb

output:

4

result:

ok 1 number(s): "4"

Test #114:

score: 100
Accepted
time: 154ms
memory: 7644kb

output:

4

result:

ok 1 number(s): "4"

Test #115:

score: 100
Accepted
time: 104ms
memory: 7312kb

output:

4

result:

ok 1 number(s): "4"

Test #116:

score: 100
Accepted
time: 124ms
memory: 7368kb

output:

4

result:

ok 1 number(s): "4"

Test #117:

score: 100
Accepted
time: 160ms
memory: 7608kb

output:

4

result:

ok 1 number(s): "4"

Test #118:

score: 100
Accepted
time: 160ms
memory: 7540kb

output:

4

result:

ok 1 number(s): "4"

Test #119:

score: 100
Accepted
time: 78ms
memory: 7280kb

output:

4

result:

ok 1 number(s): "4"

Test #120:

score: 100
Accepted
time: 142ms
memory: 7620kb

output:

4

result:

ok 1 number(s): "4"

Test #121:

score: 100
Accepted
time: 166ms
memory: 7656kb

output:

4

result:

ok 1 number(s): "4"

Test #122:

score: 100
Accepted
time: 152ms
memory: 7616kb

output:

4

result:

ok 1 number(s): "4"

Test #123:

score: 100
Accepted
time: 112ms
memory: 7400kb

output:

4

result:

ok 1 number(s): "4"

Test #124:

score: 100
Accepted
time: 128ms
memory: 6928kb

output:

4

result:

ok 1 number(s): "4"

Test #125:

score: 100
Accepted
time: 148ms
memory: 7856kb

output:

4

result:

ok 1 number(s): "4"

Test #126:

score: 100
Accepted
time: 156ms
memory: 7608kb

output:

4

result:

ok 1 number(s): "4"

Test #127:

score: 100
Accepted
time: 160ms
memory: 7624kb

output:

4

result:

ok 1 number(s): "4"

Test #128:

score: 100
Accepted
time: 160ms
memory: 7708kb

output:

4

result:

ok 1 number(s): "4"

Test #129:

score: 100
Accepted
time: 130ms
memory: 7444kb

output:

4

result:

ok 1 number(s): "4"

Test #130:

score: 100
Accepted
time: 112ms
memory: 7648kb

output:

4

result:

ok 1 number(s): "4"

Test #131:

score: 100
Accepted
time: 148ms
memory: 7880kb

output:

4

result:

ok 1 number(s): "4"

Test #132:

score: 100
Accepted
time: 104ms
memory: 7584kb

output:

4

result:

ok 1 number(s): "4"

Test #133:

score: 100
Accepted
time: 122ms
memory: 7488kb

output:

4

result:

ok 1 number(s): "4"

Test #134:

score: 100
Accepted
time: 130ms
memory: 7540kb

output:

4

result:

ok 1 number(s): "4"

Test #135:

score: 100
Accepted
time: 114ms
memory: 6176kb

output:

4

result:

ok 1 number(s): "4"

Test #136:

score: 100
Accepted
time: 150ms
memory: 7576kb

output:

4

result:

ok 1 number(s): "4"

Test #137:

score: 100
Accepted
time: 176ms
memory: 7688kb

output:

4

result:

ok 1 number(s): "4"

Test #138:

score: 100
Accepted
time: 164ms
memory: 7600kb

output:

4

result:

ok 1 number(s): "4"