先说结论:不能将Scanner类的读取和StreamTokenizer类的读写一起混用,如果混用,就会出现实际读入的数据比输入的数据少的这个问题!!!
这是原题的链接原题链接 (这题我用TreeSet暴力的,不出意外T了) 我的快读类如下所示
static class FastReader {
StreamTokenizer re;
BufferedReader br;
public FastReader() {
re = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
br = new BufferedReader(new InputStreamReader(System.in));
}
int gi() throws IOException {
re.nextToken();
int x = (int) re.nval;
return x;
}
long gl() throws IOException {
re.nextToken();
long l = (long) re.nval;
return l;
}
double gd() throws IOException {
re.nextToken();
double x = re.nval;
return x;
}
String gs() throws IOException {
String s = br.readLine();
return s;
}
}
下面是我写的代码,gi()是我封装的scanner的读取方法,r.gi()是我上面封装的快读类的读取方法
public static void main(String[] args) throws IOException {
TreeSet<Integer> a = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.equals(o2)? 1 : o1 - o2;
}
});
TreeSet<Integer> b = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.equals(o2)? 1 : o1 - o2;
}
});
TreeSet<Integer> c = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.equals(o2)? 1 : o1 - o2;
}
});
StreamTokenizer s = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
int x;
int ans = 0;
x = gi();
for(int i = 0;i < x;i ++ ) {
int t = r.gi();
a.add(t);
}
for(int i = 0;i < x;i ++ ) {
int t = r.gi();
b.add(t);
}
for(int i = 0;i < x;i ++ ) {
int t = r.gi();
c.add(t);
}
for(Iterator<Integer> it = a.iterator();it.hasNext();) {
int l = it.next();
TreeSet<Integer> t1 = (TreeSet<Integer>) b.tailSet(l, false);
for(Iterator<Integer> it1 = t1.iterator();it1.hasNext();) {
int l1 = it1.next();
TreeSet<Integer> t2 = (TreeSet<Integer>) c.tailSet(l1, false);
ans += t2.size();
}
}
println(ans);
}
我在做题的时候,发现有一个测试点怎么都过不去,但是我的思路是没有问题的,于是我就找哪里有问题,结果我发现当我输入数据时,三个TreeSet并没有读满,也就是说,输入输出出现了问题 报错的样例如下所示
1000 3811 7572 1217 1968 9121 2844 1019 1106 2904 6286 4945 1031 4981 6288 6061 634 6225 9676 7425 408 7392 612 1708 6928 5519 7051 2601 8301 4118 2958 6902 7929 531 8119 6250 6004 7315 7269 3462 6571 9907 8407 7602 4888 1047 3664 1875 7273 9692 9300 4033 3437 6265 2093 6717 1784 5496 9318 6438 9614 8629 3340 3896 5512 7811 6498 1516 5126 119 4978 8050 26 9737 5652 4914 785 5668 3141 4410 1713 2442 8443 1502 8707 6889 8219 6843 2385 3889 3281 8352 8870 2973 2248 4382 7136 5098 2250 2263 5217 7228 313 1595 3318 2317 2861 455 4338 6003 4865 2403 4797 9660 3905 9856 6549 8476 6699 8935 8717 6333 7287 7588 9306 5887 1970 2795 7337 4221 1410 2554 7801 8075 4149 1119 392 7010 7926 1082 9365 2791 3485 4162 8804 3742 4018 5353 2218 718 640 936 7051 4279 8524 2709 6518 6846 1856 3855 1067 3266 2761 5221 1341 3262 2692 8086 6625 619 9168 5990 9762 2654 153 8566 6396 4171 272 4967 1241 7264 5903 4644 1544 779 3706 4414 7625 5562 4622 5045 8829 7383 266 170 646 2958 8256 7271 9929 3777 3261 9692 6431 9766 8258 9179 3938 4882 498 1531 2147 2753 6176 43 3532 9882 809 7510 5444 5431 8907 4273 2815 9173 796 9813 8483 9052 7084 8413 2829 6697 4457 5612 6464 9067 1144 6754 3950 1642 8285 2449 748 4461 2492 4280 695 3301 8142 6140 5085 7049 6765 7900 2574 7561 7713 1058 2966 1149 5823 2147 7846 280 4112 662 9347 1608 7416 9649 9602 2054 2098 350 6515 942 4631 3563 596 9125 9703 5681 6175 2820 3581 8749 382 7646 6159 9700 5147 1982 8199 2993 8614 2311 8 7962 3919 3776 3963 3522 5830 6062 3872 8698 7004 4855 2261 7600 3981 1964 3281 6508 1136 3214 5257 1518 7212 1417 7570 2359 9751 5770 1705 8366 8081 8065 2680 8353 1841 6643 8227 7672 2705 2099 2722 6062 3307 4983 3662 3640 3299 3296 148 4435 2862 5405 2306 6427 3174 9876 5138 2926 5646 6843 1292 80 4908 3972 4785 3102 615 3012 774 9673 1463 3496 5735 4770 4831 5749 8410 8130 5397 8558 8917 4612 316 1223 1039 3490 7452 6177 6416 9450 9373 4060 5882 633 8032 667 3735 5000 3679 861 1025 1495 709 3112 6265 5540 5213 1028 22 611 5938 8940 1575 6254 6515 2614 6097 3967 5143 2513 9770 868 6574 5652 1502 958 6320 1589 2310 6351 2451 3335 7846 3160 2799 464 5053 8013 1492 5075 4976 7430 367 6551 37 3235 5517 6134 7202 660 4999 6972 7881 7925 8977 5735 8884 5297 7324 7546 8000 6127 7234 5847 9288 33 6311 693 8046 4155 2120 3022 7937 2488 9573 7974 2075 5090 460 9277 2103 5460 2602 6336 3385 7931 2071 8621 3228 9395 2520 1228 1875 9754 3427 1163 9787 9738 8208 7834 3893 328 7208 1831 9168 3134 6157 1243 8224 6618 6873 6679 8430 5827 3015 8167 3758 1438 3141 3338 7186 5661 4566 9061 5415 4346 6576 5202 4084 4784 9388 4330 1464 2949 2513 633 6083 8670 8228 659 1640 5101 3691 70 7280 3058 8238 1038 4497 1379 4376 1683 3392 5295 744 8807 9641 3672 361 77 8456 9750 4407 9920 9051 3272 6905 5134 1943 5134 5793 3583 6587 9484 6 3868 2543 4596 1258 3392 2327 1987 5075 5719 7282 2171 4526 3275 5843 1239 9704 651 7341 464 6923 6392 3736 3829 1526 2031 5315 3672 1967 1902 3156 1973 2122 2051 6569 3381 5443 5248 5368 6870 967 9002 5393 1845 8629 7588 3084 8333 8239 426 8797 5163 6818 8886 5344 4697 917 659 8369 2884 2561 7877 1209 4684 6281 4130 8065 8076 9378 9785 4947 345 8787 6692 8542 7416 4281 1627 2101 8872 8405 899 4035 5223 9785 9379 6272 7054 38 4641 9939 8952 2519 7500 9988 5152 1631 8053 3228 1009 4190 4527 7707 2977 1220 2601 6745 1853 4228 8846 725 2633 6097 1113 4209 5882 6844 481 9289 3235 1475 5580 2187 346 3080 2175 5498 4711 6580 8726 2073 7122 9606 6132 99 826 8733 3196 9031 9314 2042 6108 8299 8140 7221 2508 374 418 9342 6015 3653 817 1595 2192 7515 4676 719 3013 5739 3651 8091 4164 773 7697 296 7224 4875 5382 420 3906 4696 8814 15 9347 3306 3588 1856 3681 4006 7550 6048 7659 4719 7644 9851 2234 2320 6922 5247 4411 573 9690 8576 1346 7388 5224 8570 2263 606 8990 6170 1654 4157 2537 1002 7463 6125 9210 7496 132 6760 3545 4143 7831 1189 347 65 9861 7269 1664 4272 7843 1354 2848 9189 8742 8073 4112 7358 5031 9454 3528 6686 3611 6065 4040 1075 8542 3250 8571 8674 6362 2116 2818 4193 9657 3165 610 9518 6786 2274 3791 4629 9980 6639 171 8723 1064 635 6081 2448 89 5961 9134 3701 8378 9526 1128 6920 9128 9699 5595 5490 8168 4765 6035 7825 4282 6645 7344 1068 5271 7487 2050 5251 478 8573 326 1543 9208 6407 3991 9297 8720 9477 9350 7098 5355 478 371 4483 6530 5966 9973 1050 7083 6008 8875 7717 9005 2571 8785 4276 6410 7187 9527 6889 5760 9854 4784 4968 2613 5127 618 7686 4604 6320 1136 6311 6799 1507 794 9681 3825 7119 731 908 9479 5958 8625 8484 4882 3763 9112 1292 7302 4991 8181 3063 1197 2965 4383 3811 8092 1353 7849 9048 7674 8985 5359 825 493 2505 506 4318 9624 7589 1579 9103 3547 6556 7587 8429 6671 6699 6074 3974 1691 607 3389 2888 3573 4124 3051 8017 1830 7252 3418 9504 6238 5129 6681 3083 7635 7187 7401 7259 4776 5332 2715 4675 1889 302 9457 8560 3354 5531 8886 1397 2490 8627 637 6063 2752 41 433 4582 7293 203 438 9883 5332 7119 2966 9319 658 6720 2931 1786 2052 5646 6461 3941 2300 2270 8854 2006 4153 4092 3403 6644 2720 393 9059 5472 6786 9492 6406 4079 9695 6844 3963 1380 3963 3281 699 4621 1 3630 2759 2054 9276 9220 2347 7929 7843 7553 9935 1996 1646 9691 8640 4366 6436 4052 6190 3222 3544 2596 3653 9592 5792 7616 972 6107 7250 8023 7080 7251 1654 9839 9305 7282 5411 8005 5211 3254 5558 1499 5251 7204 7542 243 7922 3978 4295 4112 7200 4192 3060 853 3784 5204 4822 1108 1311 8424 9131 8391 5675 785 8230 1333 4420 3642 9338 5983 3248 4896 7482 8499 8453 1376 5095 2727 5354 9390 6840 8906 3582 6252 6112 3718 1457 7286 4826 9120 5710 3958 7512 7737 1095 2094 9070 5515 2088 8408 7851 5337 9657 1685 188 4462 3062 5283 7189 4768 1026 381 3675 960 2986 6139 4679 4443 3425 5857 9915 5487 6167 7427 3224 7263 5874 2295 9130 7962 7055 3333 9651 3064 5019 9840 7526 8081 1475 1068 2849 2501 1449 2876 9814 4435 9015 4493 5230 2440 6702 5146 4279 2870 8925 7504 6485 4799 6151 5615 9114 3206 5301 5117 2623 320 1309 6501 4753 2785 7569 7602 1638 5371 6831 1452 6158 5846 2297 7741 4639 9000 9239 8918 1870 8164 2774 8355 9316 8925 322 4782 8484 5623 6251 1107 2295 7561 7608 7048 6698 1530 1003 4688 6901 7834 2493 9411 3680 4790 7152 4671 142 6391 3590 8364 908 2716 3071 224 1642 9746 1358 126 1721 7609 1233 4017 5170 5193 1065 8220 6723 2068 2909 3624 6254 5402 3036 9935 6544 6540 958 6687 2932 900 5051 3840 3617 8123 416 5259 7869 1774 5385 9590 9383 2970 9959 906 8163 1025 9126 1239 9445 8387 1215 2052 141 603 8339 6686 7144 9297 3373 76 198 4776 268 3815 9251 684 5426 3472 8810 7163 9415 8193 133 9374 5451 4648 6751 930 2239 2549 9317 3455 4601 9459 4058 2940 6145 1202 2237 5870 7630 8787 6998 4250 8954 2602 1286 4380 6074 96 1543 1841 4642 8028 1216 93 2677 4319 1023 4916 3220 6693 4723 7821 6152 8782 7113 8649 6336 5703 871 319 842 7869 4569 9797 471 2208 4177 2898 2304 5721 4739 6946 3749 2307 3392 2778 6627 4415 4047 6199 1108 5122 373 3612 3904 7486 2261 6593 9541 3132 6912 384 7354 7833 181 7825 41 710 723 8698 6431 1815 5644 6533 4122 9036 5663 7101 9804 6062 3301 7264 1185 3674 877 1441 7512 9490 8034 7054 2623 1298 3790 6329 5484 3971 4154 5525 4681 1230 4223 7465 9397 6220 350 3519 1608 2365 621 1412 8428 274 8677 5965 3948 5906 7406 1460 5396 1793 4866 4371 3091 8656 700 8575 8979 1207 453 13 8789 1028 3830 8186 7248 4180 1705 8857 6545 8678 6621 1325 8952 1650 7290 9252 7556 1049 7065 9305 2842 1931 3676 5933 6940 4377 861 5919 1936 1314 5932 725 2342 9762 8911 5943 294 6968 4800 3192 1999 7773 4517 951 9424 8160 6556 6980 5561 3621 6285 8403 5552 6314 688 2492 7043 1549 4764 8979 9215 696 9704 1558 6811 4967 7501 3457 8287 8653 6649 286 6426 7519 7590 5850 2031 4146 9183 7592 7767 1820 5995 9671 8134 6683 8516 5177 4585 3280 4156 3800 328 212 1710 3491 1531 9211 6949 9819 4216 9950 105 643 7469 4047 2845 9500 4545 2028 7092 2312 3849 9439 8336 8335 2475 6852 3513 7060 6484 4021 7212 6812 4234 8923 304 2117 8134 3605 1936 2351 3555 8394 9346 1025 2441 2191 6877 6987 572 3970 5651 773 9761 339 9108 2236 7191 8973 9296 3675 2995 2861 6840 3581 1784 7144 5698 6270 749 3987 4973 656 2381 4319 1681 1174 2863 8559 4513 3435 8881 6517 560 4994 6856 9668 7231 400 4994 2879 427 7989 5740 7267 7922 7524 763 9972 3795 7864 311 8768 8521 9044 9440 6554 219 2303 1465 1084 2090 346 7601 2650 5341 810 2318 8924 1210 7312 1803 1637 1653 7544 5257 5927 1420 2372 2252 5215 237 2563 336 5110 1608 9776 1664 8179 8431 3130 9263 521 9828 3217 3171 1521 4027 1841 445 1589 5506 2249 3226 7159 6145 4835 9439 7565 7208 1691 9133 3797 606 5821 8907 8566 1949 571 6745 380 53 2361 901 9882 5578 4072 1403 5957 2265 8201 7546 7771 6802 7124 1283 2947 1960 722 6864 5520 8765 2349 9317 9371 8170 4576 4290 119 1499 1035 6851 1553 3396 7752 7787 5326 8176 5542 1283 442 3743 8829 8213 545 5954 9496 9844 4266 6570 3061 9786 5335 5410 5455 1059 9933 6383 5349 6404 7882 2736 3256 5787 2485 7360 9926 7811 5537 5469 5447 2331 5564 4276 6896 2462 6582 6393 8658 848 9315 1719 6986 4651 3482 8793 2062 3415 5176 3763 6171 9411 6499 5779 1550 8984 3140 1477 3148 5029 3298 8595 7360 5214 9223 608 7676 2158 3353 6335 3006 2669 8054 6345 7320 7888 5138 5734 1303 315 9497 3827 6078 5996 9606 7628 1333 2746 5457 4481 4127 8755 9428 1487 3970 5003 8448 7998 7161 1801 685 6520 4470 5092 2865 8142 2980 8003 3876 4284 4670 3373 4463 7100 5722 4069 4729 3407 6816 186 4240 943 5294 3668 8783 5616 8671 7231 3614 2185 9032 4300 8705 9855 9392 1570 7997 2372 5925 1874 3008 6948 1599 7471 4048 7321 1541 8777 7080 4709 5316 1320 2004 610 4988 7139 6226 12 722 6192 2197 9755 492 902 5962 6236 8824 3959 4961 4749 5833 4321 8049 3785 1793 2098 7458 9686 7227 4539 747 8895 5859 9103 9505 848 6243 2083 7212 6965 4628 9409 3072 1472 6663 9034 7709 1839 2994 9022 6588 5179 3343 990 8964 1488 3088 6423 7526 6667 962 8273 5563 6821 7377 1420 4021 9972 9856 1233 6937 4484 6994 10 5956 9 5396 17 1848 4742 9039 4789 9922 2383 5779 5238 3871 5219 1661 7750 1886 8975 6023 3801 2149 9752 1574 6170 9724 1430 3756 3014 5914 7102 9376 8222 7112 4772 8240 8960 9515 7279 3749 5789 9662 9528 1027 9886 1099 9041 7636 2986 4368 11 3139 6517 6116 4713 9040 2192 6143 2796 5206 8409 9898 934 6632 3362 2059 4872 2323 7926 8503 2424 3715 4518 1953 1094 4404 9404 6487 8392 8742 856 4755 1882 7373 7223 2947 2765 9416 5443 1913 974 3852 8164 1909 6836 1526 3968 8060 3849 1894 6564 6274 5609 1082 4579 3055 1838 335 9543 6582 9078 399 1337 960 4124 8561 259 3242 4329 5702 5155 5303 5907 3319 7212 2743 4846 1180 7156 5047 9426 72 7673 1387 1154 8604 4443 9344 8940 3986 5926 8018 737 3615 5330 1213 8528 5589 4455 2857 1292 5963 4513 7199 9282 1725 6294 480 9258 3450 1880 8684 9874 9553 72 1028 4510 867 6724 3450 1205 9002 7820 1942 2618 3150 9507 7498 5091 315 6708 6383 6278 1221 9934 1912 9298 2581 2393 4908 2383 625 3593 2258 6530 17 9638 1040 884 6363 842 8441 5365 8662 383 4335 8164 6242 1834 3256 6557 8542 9639 9187 6115 5926 1100 1765 8507 9845 6674 7242 470 6619 9500 3352 6636 9139 4393 3872 1854 5235 8665 7219 3898 5400 1555 2062 1642 9741 5318 4552 4635 1310 3739 750 3588 1191 2515 8447 7388 5541 5689 4210 2160 1542 7563 5148 681 1956 5372 8887 7191 4037 6106 7441 9437 4013 5856 1080 3754 7526 1984 8389 5188 2075 5491 8776 3267 4359 3575 655 9900 5617 4866 8413 7159 2429 3561 4192 737 8934 3079 4280 9323 5537 1722 8761 9551 3930 6193 3305 1456 8177 8047 2997 252 9890 8125 3519 4249 1701 527 502 7318 1745 8915 829 526 2476 1373 1263 7762 4452 5543 7086 9989 3617 5847 5892 3899 2040 9198 1708 6569 3597 4705 6821 3487 2830 6693 4089 883 3572 4591 4553 1669 3506 5382 2195 2334 6755 9810 97 7559 1705 3535 3901 1675 9382 9793 5574 7774 5343 7282 695 8940 1987 3868 2428 1170 561 6517 2053 485 7460 2959 2154 966 8341 4349 9652 1449 511 9749 9008 2217 3284 2909 3892 9018 2703 9466 3144 8046 3101 3839 3339 1440 7708 2119 2610 4621 4988 1016 5107 2448 3975 3613 9766 8668 4315 9418 117 4826 9168 5478 7043 8804 4739 7287 4175 7442 6754 7319 1841 6207 1159 1532 7647 5219 3651 6610 9840 8639 7626 1299 7439 7953 1265 7205 6621 5580 6623 3091 6758 2143 8569 3802 7300 3308 7441 1475 7103 4195 5146 5296 6754 2657 6828 4402 7876 6831 1012 4069 1822 8638 5368 9261 2943 6633 2818 9564 8565 5793 2655 5324 4289 1224 5478 1589 885 2919 9416 7988 3467 4562 9636 221 7220 6464 4623 1448 9647 1987 5517 1469 6977 7238 7082 9920 223 9900 9485 8789 5693 8492 4113 9982 6069 5943 7923 6954 8862 7339 1294 2329 8254 930 8903 1826 3746 9878 3274 3393 1866 5144 1214 8843 2382 8296 8764 2605 4548 4601 1394 6593 9445 1859 2928 5514 7802 851 8820 3017 4543 114 1698 9149 1044 601 975 1142 480 601 4535 8698 5745 2101 7541 8127 397 2657 7085 1297 3610 4831 7891 3056 6691 819 8570 845 8022 7391 214 8917 3857 1913 8066 1254 8866 9041 2396 5698 5995 3284 4396 1740 5385 8290 6220 2135 947 9657 3432 910 4488 1323 3966 7531 8494 8888 4729 6517 2631 4943 5434 6489 6856 3501 4095 5723 8894 6491 1421 4889 6127 2170 2982 1513 460 5554 3648 7759 5211 3432 8669 6051 4756 2635 3583 3250 7876 8312 6119 507 3255 1554 3348 112 1407 7443 2187 6653 287 9960 7895 6414 2130 877 4279 2590 2783 4279 350 7994 7712 5371 4045 8820 8007 3980 8422 2235 2292 4542 9094 1900 2448 2443 8364 207 6238 551 6860 2877 511 4755 5644 2642 5632 9923 1584 8415 555 8286 2761 4619 3658 3159 3439 8017 7139 8213 252 5784 9107 9346 7684 1555 8141 6048 1762 732 6599 4975 3609 3462 9730 9253 2456 1715 5529 393 6482 6084 8679 5596 703 2337 8755 494 354 5894 5059 606 1678 4167 6305 5714 2074 798 1762 189 1530 4713 5164 5140 8176 1246 4393 6984 2961 6274 7377 9444 2358 6057 5040 9413 8394 147 6259 5101 2393 1319 2059 424 1838 8364 6138 3912 9163 7901 4101 7045 2614 5617 2185 7142 6864 2931 479 9825 9205 7856 5621 7916 265 7013 7329 5012 7160 9941 113 9554 1260 8524 9978 3098 6889 6116 3362 2404 369 3816 9449 9336 9433 7987 2830 6297 918 3309 2475 6475 7518 4448 4391 7783 7814 8073 9147 4974 4366 5612 880 5626 4137 7210 5076 7378 9679 8438 9782 6400 2254 5583 5736 8040 3570 8567 689 840 1876 3164 3668 5746 3965 4411 3530 1779 2484 9029 3105 6850 4642 3986 8828 8779 7548 256 6157 3579 5047 2291 9980 3653 4226 5716 1693 4149 4283 2383 4989 2512 1899 5009 8258 5864 9421 8140 3995 8257 7170 7101 1460 8164 7439 6640 6943 4987 6897 9452 8567 1944 1743 4899 5597 5969 615 7291 118 1251 6026 1460 115 7925 6469 4725 142 2242 9218 4137 500 6388 1238 1960 904 5029 8600 7847 6369 1849 7299 1288 3793 5394 6187 5743 1363 6802 9386 7834 4405 5412 5646 4520 9689 2115 9246 9831 4358 8464 3969 1210 1204 1559 9522 2108 2941 4474 6307 9310 6324 9958 598 6469 5352 6785 2212 3067 9939 7950 901 4345 3362 6547 5217 9404 5015 4463 9235 5725 9279 9556 6935 483 1116 2809 8943 409 7283 1602 9719 3607 1560 6669 77 6912 3454 8641 9980 9745 6592 881 442 6306 3781 5660 5710 5148 6475 1298 873 5755 854 4160 2590 8322 6969 7886 8731 4252 9488 8450 7860 1049 5119
当我将三个TreeSet的大小输出时,发现与输入对不上,三个TreeSet插入的大小以及读入的x的值如下所示 找了半天,发现x的读入时用的是Scanner类的,但是TreeSet的元素读入是快读类的,将x的读入改为快读,问题解决。 也就是说,不能将Scanner类的读取和StreamTokenizer类的读写一起混用,如果混用,就会出现实际读入的数据比输入的数据少的这个问题!!!
|