QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#376510#7680. Subwayarnold518WA 1ms4068kbC++172.1kb2024-04-04 10:56:412024-04-04 10:56:42

Judging History

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

  • [2024-04-04 10:56:42]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:4068kb
  • [2024-04-04 10:56:41]
  • 提交

answer

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

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 50;
const int P = 1e3;
const int Q = 4e8-1e4;

struct Data
{
    int x, y, k, p;
};

int N, K;
Data A[MAXN+10];
int B;

int main()
{
    scanf("%d", &N);
    for(int i=1; i<=N; i++) scanf("%d%d%d", &A[i].x, &A[i].y, &A[i].k), K=max(K, A[i].k);

    vector<int> V;
    for(int i=1; i<=N; i++) for(int j=i+1; j<=N; j++)
    {
        int x1=A[i].x, y1=A[i].y, x2=A[i].x, y2=A[i].y;
        if(x1==x2) continue;
        if(((y2-y1)*(-2*P-x1))%(x2-x1)==0)
        {
            int y=(y2-y1)*(-2*P-x1)/(x2-x1)+y1;
            if(-P<=y && y<=P) V.push_back(y);
        }
    }
    sort(V.begin(), V.end());
    for(int i=0; i<P; i++)
    {
        if(!binary_search(V.begin(), V.end(), i)) { B=i; break; }
        if(!binary_search(V.begin(), V.end(), -i)) { B=-i; break; }
    }

    for(int j=1; j<=N; j++)
    {
        A[j].p=(ll)(A[j].y-B)*(Q-(-2*P))/(A[j].x-(-2*P))+B;
    }
    sort(A+1, A+N+1, [&](const Data &p, const Data &q) { return p.p<q.p; });

    printf("%d\n", K);
    for(int i=1; i<=K; i++)
    {
        int bef=-1e9-100;
        vector<pii> V;
        for(int j=1; j<=N; j++)
        {
            if(A[j].k>=i)
            {
                if(bef==-1e9-100)
                {
                    V.push_back({Q, A[j].p-(K-i+1)});
                    V.push_back({A[j].x, A[j].y});
                    V.push_back({Q, A[j].p+(K-i)});
                }
                else
                {
                    V.pop_back();
                    V.push_back({Q+i, bef});
                    V.push_back({Q+i, A[j].p-(K-i+1)});

                    //V.push_back({Q, A[j].p-(K-i+1)});
                    V.push_back({A[j].x, A[j].y});
                    V.push_back({Q, A[j].p+(K-i)});
                }
                bef=A[j].p+(K-i);
            }
        }
        printf("%d ", V.size());
        for(auto [x, y] : V) printf("%d %d ", x, y);
        printf("\n");
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
1 2 1
2 1 2
3 3 2

output:

2
9 399990000 199794 2 1 399990001 199797 399990001 399790 1 2 399990001 399793 399990001 599087 3 3 399990000 599090 
6 399990000 199795 2 1 399990002 199796 399990002 599088 3 3 399990000 599089 

result:

ok ok Sum L = 15

Test #2:

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

input:

1
1 1 1

output:

1
3 399990000 199895 1 1 399990000 199896 

result:

ok ok Sum L = 3

Test #3:

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

input:

1
1 1 50

output:

50
3 399990000 199846 1 1 399990000 199945 
3 399990000 199847 1 1 399990000 199944 
3 399990000 199848 1 1 399990000 199943 
3 399990000 199849 1 1 399990000 199942 
3 399990000 199850 1 1 399990000 199941 
3 399990000 199851 1 1 399990000 199940 
3 399990000 199852 1 1 399990000 199939 
3 39999000...

result:

ok ok Sum L = 150

Test #4:

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

input:

50
662 -567 48
728 -120 7
307 669 27
-885 -775 21
100 242 9
-784 -537 41
940 198 46
736 -551 30
-449 456 16
-945 382 18
-182 810 49
213 187 44
853 245 48
617 -305 19
-81 261 3
617 208 8
-548 -652 6
-888 -667 14
-371 -812 43
202 -702 10
-668 -725 5
961 -919 33
-870 -697 50
428 810 29
560 405 7
348 -3...

output:

50
150 399990000 -278021395 -885 -775 399990001 -278021296 399990001 -246720779 -870 -697 399990001 -246720680 399990001 -239923308 -888 -667 399990001 -239923209 399990001 -217713413 -668 -725 399990001 -217713314 399990001 -211802189 -306 -897 399990001 -211802090 399990001 -199382188 -371 -812 39...

result:

ok ok Sum L = 3579

Test #5:

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

input:

50
-772 697 1
-756 -909 1
659 923 1
850 471 1
260 -24 1
473 -639 1
-575 393 1
-466 197 1
333 -637 1
-192 -890 1
103 546 1
749 -723 1
-573 613 1
214 -138 1
277 928 1
266 291 1
911 275 1
-680 -67 1
69 190 1
-197 -795 1
684 618 1
729 -115 1
-658 -229 1
-595 -470 1
898 -172 1
401 81 1
133 685 1
223 400 ...

output:

1
150 399990000 -292277113 -756 -909 399990001 -292277112 399990001 -208700941 -162 -959 399990001 -208700940 399990001 -200415866 -571 -716 399990001 -200415865 399990001 -196898717 -192 -890 399990001 -196898716 399990001 -176369185 -197 -795 399990001 -176369184 399990001 -171228103 30 -869 39999...

result:

ok ok Sum L = 150

Test #6:

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

input:

50
-56 747 3
993 -490 4
930 -139 1
-298 -330 1
938 -351 5
-973 100 5
-472 44 4
345 628 5
481 -91 4
789 581 5
457 -29 4
871 -799 1
692 994 4
699 854 2
893 -33 1
-483 256 3
-962 -540 2
846 -893 1
830 609 5
845 -383 2
-552 -966 1
-544 -51 1
564 186 4
-615 -675 1
618 -911 3
-561 -302 4
-293 667 3
-334 -...

output:

5
150 399990000 -266845496 -552 -966 399990001 -266845487 399990001 -235065002 -637 -801 399990001 -235064993 399990001 -220499192 -888 -613 399990001 -220499183 399990001 -208088328 -962 -540 399990001 -208088319 399990001 -206949508 -792 -625 399990001 -206949499 399990001 -194941954 -615 -675 399...

result:

ok ok Sum L = 423

Test #7:

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

input:

50
600 997 5
-893 -204 3
408 443 1
-560 -748 7
-647 161 6
-285 -980 1
87 -582 7
-48 -721 7
997 285 2
-189 -728 8
525 222 4
-324 816 9
760 317 3
753 -480 10
-813 -921 3
-325 -875 8
-747 816 10
-627 605 7
775 786 6
136 -54 2
274 948 10
216 -113 7
924 68 3
101 576 8
60 -501 2
898 801 8
-767 -974 10
-99...

output:

10
150 399990000 -315970981 -767 -974 399990001 -315970962 399990001 -310356060 -813 -921 399990001 -310356041 399990001 -236154148 -313 -996 399990001 -236154129 399990001 -228566867 -285 -980 399990001 -228566848 399990001 -215380317 -258 -938 399990001 -215380298 399990001 -208951054 -325 -875 39...

result:

ok ok Sum L = 843

Test #8:

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

input:

50
24 -889 49
117 418 49
25 524 44
980 -416 43
-494 357 41
-287 -285 46
151 574 41
-289 68 49
-515 -540 41
-367 -178 47
-887 151 45
197 -272 47
714 724 45
-737 94 49
810 830 47
808 -695 41
537 -637 49
-142 -167 44
-749 -631 47
445 -444 42
801 910 43
59 363 42
-912 466 50
-649 -479 48
-958 -511 49
88...

output:

50
150 399990000 -213499854 -282 -917 399990001 -213499755 399990001 -201754607 -749 -631 399990001 -201754508 399990001 -196157355 -958 -511 399990001 -196157256 399990001 -184671055 75 -958 399990001 -184670956 399990001 -175688235 24 -889 399990001 -175688136 399990001 -157751151 173 -857 3999900...

result:

ok ok Sum L = 6804

Test #9:

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

input:

50
151 -171 50
-367 -951 50
808 569 50
150 -618 50
27 -476 50
-846 729 50
549 -456 50
50 646 50
294 -70 50
-571 104 50
128 -265 50
913 -700 50
267 -965 50
896 846 50
-2 713 50
21 679 50
-515 975 50
168 180 50
-369 -98 50
676 115 50
643 -779 50
920 -237 50
-324 450 50
149 -378 50
-882 -602 50
-126 -7...

output:

50
150 399990000 -232975366 -302 -989 399990001 -232975267 399990001 -232940890 -367 -951 399990001 -232940791 399990001 -215380357 -882 -602 399990001 -215380258 399990001 -170540929 -126 -799 399990001 -170540830 399990001 -170265722 267 -965 399990001 -170265623 399990001 -168044026 197 -923 3999...

result:

ok ok Sum L = 7500

Test #10:

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

input:

50
4 5 34
1 -5 24
-4 -4 32
-3 3 28
0 -1 21
1 -4 25
0 0 30
0 -4 42
-3 -2 44
-5 -3 37
4 -1 46
5 2 20
2 2 37
-2 5 35
-2 -1 39
2 4 32
-4 -3 42
0 3 32
3 5 47
-4 1 2
5 -1 17
-5 -4 5
-2 2 29
-5 1 11
2 -5 43
4 4 14
-5 0 9
0 -5 17
5 1 27
-3 0 24
-1 4 16
5 0 50
3 -2 18
1 -2 6
2 -1 29
-1 3 38
1 5 36
-3 1 28
-3...

output:

50
150 399990000 -1001030 -2 -5 399990001 -1000931 399990001 -1000030 0 -5 399990001 -999931 399990001 -999530 1 -5 399990001 -999431 399990001 -999031 2 -5 399990001 -998932 399990001 -802038 -5 -4 399990001 -801939 399990001 -801637 -4 -4 399990001 -801538 399990001 -800434 -1 -4 399990001 -800335...

result:

wrong answer Duplicated points on polyline 1.