QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#519112#7758. Painterqqbb#ML 179ms250424kbC++203.0kb2024-08-14 16:25:212024-08-14 16:25:21

Judging History

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

  • [2024-08-14 16:25:21]
  • 评测
  • 测评结果:ML
  • 用时:179ms
  • 内存:250424kb
  • [2024-08-14 16:25:21]
  • 提交

answer

#include <bits/stdc++.h>
#define qqbb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define all(x) (x).begin(), (x).end()
#define int long long
#define endl '\n'
#define lb(x) x & -x
#define AA cerr<<"AA"<<endl;
using namespace std;
typedef pair<int, int> pii;
const int inf = 0x3f3f3f3f;

const int N = 2e5 + 10, M = 4e5 + 10;

void solve(){
    int n;cin>>n;
    vector<array<char,2>> op(n+1);
    vector<array<int,4>> opp(n+1);
    int lo=inf,le=inf;
    int lo1=inf,le1=inf;
    int hi1=-inf,ri1=-inf;
    for(int i=1;i<=n;i++){
        string s;cin>>s;
        if(s == "Circle"){
            int x,y,r;cin>>x>>y>>r;
            char p;cin>>p;
            op[i][0] = 'A';
            op[i][1] = p;
            opp[i][0]=x;
            opp[i][1]=y;
            opp[i][2]=r;
            opp[i][3]=0;
        }
        else if(s == "Rectangle"){
            int x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;
            char p;cin>>p;
            op[i][0] = 'B';
            op[i][1] = p;
            opp[i][0]=x1;
            opp[i][1]=y1;
            opp[i][2]=x2;
            opp[i][3]=y2;
        }
        else{
            int x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;
            lo1=min(lo1,y1);
            le1=min(le1,x1);
            hi1=max(hi1,y2);
            ri1=max(ri1,x2);
            op[i][0] = 'C';
            op[i][1] = '.';
            opp[i][0]=x1;
            opp[i][1]=y1;
            opp[i][2]=x2;
            opp[i][3]=y2;
        }
    }
    vector<vector<char>> mp(ri1 - le1 + 1,vector<char> (hi1 - lo1 + 1));
    int mpx = ri1 - le1 + 1;
    int mpy = hi1 - lo1 + 1;
    for(int i=0;i<mpx;i++){
        for(int j=0;j<mpy;j++){
            mp[i][j] = '.';
        }
    }
    for(int i=1;i<=n;i++){
        if(op[i][0] == 'A'){
            int u=opp[i][0]-le1;
            int v=opp[i][1]-lo1;
            int r=opp[i][2];
            for(int x=max(0ll,u-r);x<=min(mpx-1,u+r);x++){
                for(int y=max(0ll,v-r);y<=min(mpy-1,v+r);y++){
                    if((x-u)*(x-u) + (y-v)*(y-v) <= r*r){
                        mp[x][y] = op[i][1];
                    }
                }
            }
        }
        else if(op[i][0] == 'B'){
            int x1=opp[i][0]-le1;
            int y1=opp[i][1]-lo1;
            int x2=opp[i][2]-le1;
            int y2=opp[i][3]-lo1;
            for(int x=max(0ll,x1);x<=min(mpx-1,x2);x++){
                for(int y=max(0ll,y1);y<=min(mpy-1,y2);y++){
                    mp[x][y] = op[i][1];
                }
            }
        }
        else{
            int x1=opp[i][0]-le1;
            int y1=opp[i][1]-lo1;
            int x2=opp[i][2]-le1;
            int y2=opp[i][3]-lo1;
            for(int y=y2;y>=y1;y--){
                for(int x=x1;x<=x2;x++){
                    cout<<mp[x][y];
                }
                cout<<endl;
            }
        }
    }
}

signed main(){
    qqbb;
//	cout<<fixed<<setprecision(0);
    int Test=1;
//	cin>>Test;
    while(Test--){
        solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 136ms
memory: 164092kb

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: 0
Accepted
time: 1ms
memory: 3880kb

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:

ok single line: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3900kb

input:

10
Rectangle -8228 -3399 3061 5167 P
Circle 600 -5480 5406 b
Rectangle -5644 -7645 -2592 2164 &
Circle 5101 -2822 5474 ~
Rectangle -116 -2676 326 5228 X
Rectangle -3772 1494 -3354 3523 !
Rectangle 2084 -729 2467 1390 ;
Circle -786 900 658 3
Rectangle -290 514 436 662 g
Render -7140 -4510 -7140 5489

output:

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

result:

ok 10000 lines

Test #5:

score: 0
Accepted
time: 75ms
memory: 94364kb

input:

10
Render 4431 -6882 4486 -6880
Circle -5131 -3627 3919 K
Rectangle 3708 -7820 7499 -3207 c
Render 1734 4783 1752 4818
Circle 94 4899 1950 '
Render 8154 6624 8159 6862
Circle 3837 550 356 0
Render 2230 -2196 2232 -1293
Rectangle -935 701 949 1318 ?
Render 5282 -7624 5997 -7624

output:

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

result:

ok 1183 lines

Test #6:

score: 0
Accepted
time: 179ms
memory: 250424kb

input:

10
Render -6920 -3210 -6633 -3205
Circle 5221 3077 390 F
Render -6294 -8386 -6235 -8360
Circle 65 -687 1867 ]
Render 1017 -8804 1689 -8803
Circle 475 1359 2114 )
Rectangle 52 -1984 1779 -614 M
Rectangle 1506 -2131 2992 -871 g
Render -6910 7316 -6904 7371
Render 8670 -8136 8684 -8117

output:

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

result:

ok 111 lines

Test #7:

score: -100
Memory Limit Exceeded

input:

10
Rectangle 310990349 810289642 815443779 836759585 ;
Rectangle 793346907 -272571666 797309793 172290221 ]
Rectangle 467935431 -439130559 544524486 229621852 3
Rectangle -224358535 -197178831 393287874 348972387 s
Rectangle -150003927 9534824 -107643143 77085794 j
Render -883072967 590805088 -88307...

output:


result: