QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#632209#7758. PainterREN5511WA 1ms4048kbC++142.2kb2024-10-12 12:57:322024-10-12 12:57:32

Judging History

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

  • [2024-10-12 12:57:32]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:4048kb
  • [2024-10-12 12:57:32]
  • 提交

answer

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
typedef long long ll;
unordered_map<ll, unordered_map<ll, char>>mp;
struct ins
{
    string type;
    ll x1, x2, y1, y2,r;
    char tar;
};
vector<ins>ok;
void circle(ll x1, ll x2, ll y1, ll y2,ll x, ll y, ll r, char tar) {
    for (int i = y1; i <= y2; i++) {
        for (int j = x1; j <=x2; j++) {
            if ((i - y) * (i - y) + (j -x) * (j - x) <= r * r) {
                mp[i][j] = tar;
            }
        }
    }
}
void rectangle(ll x1,ll x2,ll y1,ll y2,char tar) {
    for (int i = y1; i <= y2; i++) {
        for (int j = x1; j <= x2; j++) {
            mp[i][j] = tar;
        }
    }
}
void render() {
    ll x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;
    for (auto now : ok) {
        ll xl, xr, yl, yr, x, y, r;
        if (now.type == "Circle") {
            xl = max(x1, now.x1 - now.r);
            xr = min(x2, now.x1 + now.r);
            yl = max(y1, now.y1 - now.r);
            yr = min(y2, now.y1 + now.r);
            circle(xl, xr, yl, yr, now.x1, now.y1, now.r, now.tar);
        }
        else {
            xl = max(x1, now.x1);
            xr = min(x2, now.x2);
            yl = max(y1, now.y1);
            yr = min(y2, now.y2);
            rectangle(xl, xr, yl, yr, now.tar);
        }
    }
    for (int i = y2; i >= y1; i--) {
        for (int j = x2; j >= x1; j--) {
            if (mp[i][j] == 0) {
                mp[i][j] = '.';
            }
            cout << mp[i][j];
        }
        cout << "\n";
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int n;
    cin >> n;
    while (n--) {
        string what;
        cin >> what;
        if (what == "Circle") {
            ll x, y, r;
            char tar;
            cin >> x >> y >> r >> tar;
            ok.push_back({ what,x,0,y,0,r,tar});
        }
        else if (what == "Rectangle") {
            ll x1, y1, x2, y2;
            char tar;
            cin >> x1 >> y1 >> x2 >> y2 >> tar;
            ok.push_back({ what,x1,x2,y1,y2,0,tar});
        }
        else {
            render();
        }
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

7
Circle 0 0 5 *
Circle -2 2 1 @
Circle 2 2 1 @
Rectangle 0 -1 0 0 ^
Rectangle -2 -2 2 -2 _
Render -5 -5 5 5
Render -1 0 1 2

output:

.....*.....
..*******..
.**@***@**.
.*@@@*@@@*.
.**@***@**.
*****^*****
.****^****.
.**_____**.
.*********.
..*******..
.....*.....
@*@
***
*^*

result:

ok 14 lines

Test #2:

score: 0
Accepted
time: 1ms
memory: 4048kb

input:

10
Rectangle -4262 2204 3116 9357 U
Circle 7078 6883 4684 W
Rectangle 390 675 1195 1251 =
Rectangle 78 2138 3288 2570 5
Rectangle -874 797 -99 1440 3
Render 7261 -4311 7304 -4268
Render 2060 9253 2103 9296
Render -1379 -7141 -1336 -7098
Render 982 5708 1025 5751
Render 1080 -9592 1123 -9549

output:

............................................
............................................
............................................
............................................
............................................
............................................
.................................

result:

ok 220 lines

Test #3:

score: -100
Wrong Answer
time: 1ms
memory: 3968kb

input:

10
Rectangle -10000 -10000 10000 10000 @
Rectangle 1197 -1 1198 1 y
Rectangle 3684 -1 3685 0 &
Circle 8957 0 1 Y
Rectangle -5375 0 -5373 2 <
Circle 2683 0 0 7
Rectangle 1262 -1 1263 -1 i
Circle 3238 0 0 K
Circle -3533 0 0 G
Render -1605 0 8394 0

output:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...

result:

wrong answer 1st lines differ - expected: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@', found: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'