#include <bits/stdc++.h>
using namespace std;
inline int read()
{
int x = 0, f = 1;
char c = getchar();
while (c < '0' || c > '9')
{
if (c == '-')
f = -1;
c = getchar();
}
while (c >= '0' && c <= '9')
{
x = x * 10 + c - '0';
c = getchar();
}
return x * f;
}
int n, m, L, k, d[100005], v[100005], a[100005], p[100005], cnt;
struct M
{
int l, r;
bool operator<(const M tmp) const
{
return (r ^ tmp.r) ? r < tmp.r : l < tmp.l;
}
} q[100005];
bool check(int x, int i)
{
int dis = x - d[i];
if (v[i] * v[i] + dis * a[i] > k * k)
return true;
return false;
}
int main()
{
// freopen("detect.in", "r", stdin);
// freopen("detect.out", "w", stdout);
int T = read();
while (T--)
{
cnt = 0;
n = read(), m = read(), L = read(), k = read();
for (int i = 1; i <= n; i++)
{
d[i] = read(), v[i] = read(), a[i] = read();
}
for (int i = 1; i <= m; i++)
{
p[i] = read();
}
sort(p + 1, p + m + 1);
for (int i = 1; i <= n; i++)
{
if (a[i] < 0)
{
int l = d[i], r = 1000000, res = d[i] - 1;
while (l <= r)
{
int mid = l + r >> 1;
if (check(mid, i))
{
l = mid + 1;
res = mid;
}
else
{
r = mid - 1;
}
}
if (res < d[i])
continue;
q[++cnt] = {d[i], res};
}
else if (a[i] == 0)
{
if (v[i] > k)
{
q[++cnt] = {d[i], L};
}
}
else
{
int l = d[i], r = L, res = L + 1;
while (l <= r)
{
int mid = l + r >> 1;
if (check(mid, i))
{
r = mid - 1;
res = mid;
}
else
{
l = mid + 1;
}
}
if (res > L)
continue;
q[++cnt] = {res, L};
}
}
sort(q + 1, q + cnt + 1);
int i = 1, j = 1, ans1 = 0, ans2 = 0;
while (i <= cnt && j <= m)
{
while (i <= cnt && p[j] > q[i].r)
i++;
bool fg = 0;
while (j < m && p[j + 1] <= q[i].r)
j++;
if (q[i].l <= p[j] && p[j] <= q[i].r)
{
fg = 1;
ans1++;
i++;
}
while (i <= cnt && q[i].l <= p[j] && p[j] <= q[i].r)
{
fg = 1;
ans1++;
i++;
}
if (fg)
ans2++, j++;
while (p[j] < q[i].l)
j++;
}
printf("%lld %lld\n", ans1, m - ans2);
}
return 0;
}
可以发现我的代码至少在 windows 下可以正常运行。
20
19 20 137800 389
45618 920 -6
128144 406 -743
45411 691 -2
117015 918 -14
1417 785 -2
59971 734 -3
63700 261 176
2072 766 -22
6808 920 -3
10653 900 -5
28209 888 -3
119520 962 -71
119770 925 -28
36479 706 -2
33809 720 -13
45510 567 -1
85717 693 -5
8724 986 -5
31235 840 675
3279 7336 8852 11907 19173 23684 31573 34019 45063 46256 62464 84273 98661 108826 116961 120719 123788 127159 130001 137800
20 20 92710 634
57557 805 -1
53655 852 -8
20321 816 -1
361 935 -4
46344 738 -8
9184 810 -3
22754 895 -5
8291 960 -22
29760 847 -3
59793 894 -7
30513 769 -3
10978 874 -5
15453 889 -3
64953 896 -10
9980 919 -10
47116 884 -5
22584 885 -3
9300 926 -5
45251 871 -14
20514 895 -3
8157 10484 20022 21278 26380 26661 29292 32288 45174 46691 47856 54270 57287 57742 63188 82020 84583 85097 86473 92237
19 20 64169 764
40436 873 -5
60037 895 -63
13510 860 -2
24385 964 -12
7440 894 -2
5432 941 -3
38525 987 -11
25515 938 -9
8605 937 -1
20962 947 -4
63074 391 -149
58951 960 -138
15193 974 -4
14722 879 -2
42707 850 -4
45381 1000 -17
9731 830 -1
4908 962 -1
17333 967 -6
720 5218 7966 13028 14011 16051 20967 27436 38771 38942 41103 43427 47449 53716 56226 57320 59799 60175 60225 62750
19 20 61557 384
24663 956 -29
46458 984 -47
56304 831 -82
12315 883 -29
50282 929 -9
38488 304 -925
7047 683 -123
15737 706 -4
10569 766 -7
31231 930 -24
27976 891 -398
25468 514 -135
56071 823 -13
27734 586 -3
49381 925 -51
36163 822 -4
34498 957 -20
46776 829 -8
25171 931 -10
2121 8287 10730 13033 18600 25470 28075 37624 37986 40630 45091 46610 48034 51145 54606 56113 56477 59601 59625 60471
19 20 9756 827
164 956 -39
5004 890 -904
295 927 -14
79 924 -18
4111 918 -89
4589 961 -325
2539 947 -24
2472 967 -519
2851 853 -1
2583 954 -18
4616 902 -3
2682 995 -32
3341 871 -3
2554 966 -46
2543 948 -32
30 966 -48
2560 974 -1
5405 994 -53
4720 960 -643
34 459 612 2512 2590 3332 3356 3430 4467 4876 4949 5014 5825 5973 6897 6994 8003 8776 9119 9637
19 20 40105 366
14810 964 -38
4155 932 -12
31986 872 -79
16957 858 -294
15790 960 -165
11931 977 -18
4781 441 -615
4533 818 -15
13845 917 -17
1637 480 -3
16017 796 -17
4850 301 -393
17035 973 -35
2009 795 -7
17873 965 -34
334 875 -1
18035 580 -979
37163 353 887
2596 693 -38
715 2975 6773 10571 11833 11963 13637 14248 14971 16521 16583 17705 18054 18240 21086 26947 27761 30829 33577 37399
19 20 52364 835
16753 991 -6
25798 977 -36
546 880 -2
2571 896 -2
1017 902 -2
6157 988 -3
12805 985 -8
17376 996 -18
15579 920 -414
10777 896 -10
15459 976 -601
18303 967 -17
28283 917 -5
24767 954 -1
28771 952 -727
15462 923 -6
5882 882 -3
25197 898 -3
28491 940 -5
2570 4420 11162 13477 15593 15971 19796 19865 21397 24690 25798 28858 29009 30965 32095 38706 42347 42952 44582 48041
20 20 174838 479
14790 771 -3
62101 971 -8
81386 597 -7
21284 669 -3
34381 911 -3
64615 988 -7
34346 883 -4
58340 803 -126
62861 693 -6
18886 793 -2
957 885 -4
84413 965 -5
38903 890 -3
37188 892 -3
36238 992 -9
80747 843 -5
58409 692 -5
26732 631 -899
139218 840 -713
22573 820 -2
10635 14732 14892 23408 33339 37202 57251 58498 68480 74100 82214 84728 97449 117411 118178 128099 134039 139451 140092 174838
20 20 56787 292
4272 660 -11
24423 985 -88
17246 854 -26
27607 764 -6
4554 614 -8
16942 852 -10
22827 702 -91
8734 918 -25
1458 913 -45
25902 747 -10
17135 927 -12
17108 801 -54
18437 730 -30
9098 405 -1
23015 807 -10
9369 682 -22
8561 807 -17
8228 583 -10
9625 863 -23
26037 992 -7
2097 5732 8164 9381 9901 16815 17281 20629 22799 23478 24385 24448 25016 25286 28265 30151 31131 48127 50214 55216
19 20 137539 462
25234 740 -4
8661 669 -3
45908 999 -34
66436 880 -14
66253 552 -1
58826 867 -6
66215 823 -25
45870 978 -27
13761 943 -4
79182 906 -7
59121 829 -5
30063 760 -3
43683 956 -4
15293 708 -5
20284 951 -4
3367 842 -5
35727 652 -8
12816 621 -32
13858 948 -8
5528 10424 15300 15892 20529 32597 37043 46902 47757 54933 57904 59499 66663 71340 79586 88123 97808 101122 109866 125952
19 20 113768 744
52484 856 -2
9887 812 -3
74010 871 -3
49189 975 -1
43871 992 -7
64746 872 -3
68728 907 -6
3130 917 -3
32472 985 -1
60993 966 -24
54391 336 -829
76489 898 -4
10482 870 -7
68796 934 -4
9356 959 -2
77127 828 -1
40272 985 -2
107350 966 -51
65671 799 -1
8720 9920 12812 24193 29522 37053 49117 52786 57118 64212 68701 68800 72687 77923 96790 97543 100897 107874 108926 110329
19 20 86542 493
37685 620 -2
38439 690 -5
1063 813 -3
49754 998 -16
20246 821 -10
72673 213 879
23948 928 -6
3130 938 -17
60821 593 -11
14275 979 -38
3511 823 -10
21469 814 -38
12703 603 -1
23448 879 -20
48322 844 -16
49919 794 -9
26588 962 -32
20629 765 -6
20955 784 -20
5733 18007 19915 21803 25185 26994 36618 36743 39428 47367 49420 49987 52536 61460 62078 66378 70933 74349 77323 78700
19 20 144051 8
7586 944 -6
71198 421 -8
102481 165 722
24232 862 -257
27760 422 -397
72472 727 -4
27917 883 -5
15645 956 -4
61628 919 -25
83257 943 -4
27421 861 -1
94302 870 -27
9471 621 -11
66211 657 -5
89213 583 -5
27445 877 -5
34258 838 -5
81536 833 -19
90780 628 -1
11408 25660 26770 27914 28037 56903 59477 63602 71849 72119 81233 89184 89261 96283 101245 108823 137503 141613 141781 144051
19 20 104177 97
75313 882 -37
98191 888 -630
74586 992 -49
44200 991 -16
74592 806 -32
43518 778 -9
27380 710 -4
84723 272 -6
11811 801 -4
85447 896 -56
64389 802 -14
86904 891 -76
89654 967 -159
1171 662 -5
33368 976 -13
14197 863 -5
85269 647 -69
58209 790 -8
27670 664 -3
2946 16926 22727 35549 43111 43963 52161 62658 64949 74563 74621 75700 83842 86017 87060 87840 89871 92065 95237 98554
19 20 110317 98
50350 875 -9
69906 967 -16
224 871 -7
56861 454 -137
63514 680 -6
12351 977 -5
796 653 -2
9637 719 -4
94296 380 -9
99388 823 -40
60644 760 -7
93889 704 -117
93059 953 -9
41568 702 -4
11234 925 -5
11457 814 -4
30994 824 -7
100 673 -8
9254 963 -17
346 2653 11229 11869 12385 23567 31379 34431 38189 43573 57187 71080 77917 86986 87405 92956 95317 100492 101973 107643
20 20 115932 263
75424 922 -274
47578 937 -4
52927 877 -15
27066 729 -3
30072 973 -3
24148 927 -12
61536 999 -12
102913 422 -6
7601 869 -5
53853 969 -15
31889 703 -7
55937 921 -12
25033 879 -5
23085 866 -7
37712 626 -4
27988 518 -4
17591 483 -2
15070 978 -12
24646 708 -6
52832 801 -10
5148 15937 20359 22134 25594 29351 33209 51945 54571 58258 63586 67484 70638 75580 76535 82901 83776 102481 104189 109284
19 20 111580 619
50560 884 -7
6721 858 -2
34028 911 -4
20118 847 748
3652 879 -1
24034 868 -6
20468 907 -4
15 936 -3
23250 851 -2
27121 917 -43
52706 728 -705
73950 844 -13
32774 689 -1
15850 976 -15
53065 922 -7
6626 746 -1
31963 756 -2
24489 906 -4
6940 928 -1
1278 5329 8261 11552 22869 23574 28792 32319 33401 35804 40324 44850 53687 65441 78604 79302 85305 89315 93955 111580
19 20 93614 720
31441 935 -3
61875 976 -7
18427 806 -1
87898 902 -407
45776 924 -4
19234 925 -5
12058 913 -2
18917 801 -1
31175 941 -3
8275 984 -22
52606 860 -5
25846 905 -28
40872 1000 -12
77256 976 -3
76762 963 -16
55459 943 -9
54582 987 -5
18457 966 -21
29465 834 -2
9883 18403 20689 26331 31164 31249 32080 43998 47498 53980 56933 64092 72596 76498 76750 76951 79267 87635 88054 93614
19 20 152697 851
3483 926 -6
21806 934 -1
30935 967 -1
23464 908 -2
12737 977 -33
25117 969 -1
15558 927 -2
8319 978 -1
13424 914 -4
64335 959 -6
840 978 -9
2351 940 -290
1052 998 -2
14643 990 -8
1526 950 -8
53027 990 -2
71555 975 -1
3311 977 -4
1583 892 -3
2552 4370 5575 11570 13392 13791 15828 25352 30974 47341 52058 64760 76219 89813 97543 121321 125020 136558 139075 147670
20 20 77795 995
6782 1000 -1
14768 1000 -1
13649 1000 -1
72179 999 -1
32243 1000 -3
11307 999 -1
52750 1000 -1
5170 998 -1
23067 996 -232
7364 999 -1
10389 1000 -1
56760 1000 -1
57148 1000 -620
56536 999 -1
6910 997 -111
58051 998 -1
8170 999 -1
11054 999 -6
49900 1000 -2
18396 997 -2
1727 6926 8072 8241 11336 15172 18177 18894 23067 28824 32336 33949 52257 52548 56592 57150 58688 60501 74138 75906