gaokao-pro 0.3.19 → 0.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/data/datasets/yifenyiduan-manifest.json +1403 -96
  2. package/data/yifenyiduan/_ocr-pipeline/ingest-anhui-2026-pdf.py +174 -0
  3. package/data/yifenyiduan/_ocr-pipeline/ingest-html.py +77 -7
  4. package/data/yifenyiduan/_ocr-pipeline/vision-ocr.swift +26 -0
  5. package/data/yifenyiduan/anhui-2026-history.json +1 -0
  6. package/data/yifenyiduan/anhui-2026-physics.json +1 -0
  7. package/data/yifenyiduan/beijing-2026-combined.json +1 -0
  8. package/data/yifenyiduan/fujian-2026-history.json +2283 -0
  9. package/data/yifenyiduan/fujian-2026-physics.json +2368 -0
  10. package/data/yifenyiduan/guangxi-2026-history.json +1 -0
  11. package/data/yifenyiduan/guangxi-2026-physics.json +1 -0
  12. package/data/yifenyiduan/guizhou-2026-history.json +1 -0
  13. package/data/yifenyiduan/guizhou-2026-physics.json +1 -0
  14. package/data/yifenyiduan/hainan-2026-combined.json +2748 -0
  15. package/data/yifenyiduan/hubei-2026-history.json +1 -0
  16. package/data/yifenyiduan/hubei-2026-physics.json +1 -0
  17. package/data/yifenyiduan/hunan-2026-history.json +1 -0
  18. package/data/yifenyiduan/hunan-2026-physics.json +1 -0
  19. package/data/yifenyiduan/jiangsu-2026-history.json +1 -0
  20. package/data/yifenyiduan/jiangsu-2026-physics.json +1 -0
  21. package/data/yifenyiduan/jiangxi-2026-history.json +1 -0
  22. package/data/yifenyiduan/jiangxi-2026-physics.json +1 -0
  23. package/data/yifenyiduan/jilin-2026-history.json +1 -0
  24. package/data/yifenyiduan/jilin-2026-physics.json +1 -0
  25. package/data/yifenyiduan/liaoning-2026-history.json +1 -0
  26. package/data/yifenyiduan/liaoning-2026-physics.json +1 -0
  27. package/data/yifenyiduan/ningxia-2026-history.json +1 -0
  28. package/data/yifenyiduan/ningxia-2026-physics.json +1 -0
  29. package/data/yifenyiduan/shaanxi-2026-history.json +1 -0
  30. package/data/yifenyiduan/shaanxi-2026-physics.json +1 -0
  31. package/data/yifenyiduan/shandong-2026-combined.json +1 -0
  32. package/data/yifenyiduan/shanxi-2026-history.json +1 -0
  33. package/data/yifenyiduan/shanxi-2026-physics.json +1 -0
  34. package/data/yifenyiduan/tianjin-2026-combined.json +1 -0
  35. package/dist/index.js +59 -16
  36. package/dist/rank-table.d.ts +19 -0
  37. package/dist/rank-table.js +41 -0
  38. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"province": "shandong", "province_name": "山东", "year": 2026, "track": "combined", "track_cn": "综合改革", "source": "省考试院 / eol.cn (一分一段表全表)", "source_url": "https://gaokao.eol.cn/shan_dong/dongtai/202606/t20260625_2749145.shtml", "note": "山东 2026 夏季高考普通类一分一段表(全体);eol.cn 镜像为[分数段|全体|选考各科]并排版式,取全体本段/累计列(第0,1,2列);count 由 cumulative(位次) 反推(官方表为累计制/顶部分段合并);分数/人数/累计取自官方表第 0,1,2 列(含投档类型前缀/并排双轨版式)", "count": 548, "rows": [{"score": 697, "count": 56, "cumulative": 56}, {"score": 696, "count": 14, "cumulative": 70}, {"score": 695, "count": 15, "cumulative": 85}, {"score": 694, "count": 17, "cumulative": 102}, {"score": 693, "count": 21, "cumulative": 123}, {"score": 692, "count": 22, "cumulative": 145}, {"score": 691, "count": 26, "cumulative": 171}, {"score": 690, "count": 27, "cumulative": 198}, {"score": 689, "count": 36, "cumulative": 234}, {"score": 688, "count": 34, "cumulative": 268}, {"score": 687, "count": 30, "cumulative": 298}, {"score": 686, "count": 34, "cumulative": 332}, {"score": 685, "count": 43, "cumulative": 375}, {"score": 684, "count": 33, "cumulative": 408}, {"score": 683, "count": 39, "cumulative": 447}, {"score": 682, "count": 58, "cumulative": 505}, {"score": 681, "count": 64, "cumulative": 569}, {"score": 680, "count": 68, "cumulative": 637}, {"score": 679, "count": 59, "cumulative": 696}, {"score": 678, "count": 56, "cumulative": 752}, {"score": 677, "count": 71, "cumulative": 823}, {"score": 676, "count": 76, "cumulative": 899}, {"score": 675, "count": 81, "cumulative": 980}, {"score": 674, "count": 102, "cumulative": 1082}, {"score": 673, "count": 92, "cumulative": 1174}, {"score": 672, "count": 104, "cumulative": 1278}, {"score": 671, "count": 118, "cumulative": 1396}, {"score": 670, "count": 104, "cumulative": 1500}, {"score": 669, "count": 128, "cumulative": 1628}, {"score": 668, "count": 113, "cumulative": 1741}, {"score": 667, "count": 120, "cumulative": 1861}, {"score": 666, "count": 130, "cumulative": 1991}, {"score": 665, "count": 110, "cumulative": 2101}, {"score": 664, "count": 154, "cumulative": 2255}, {"score": 663, "count": 127, "cumulative": 2382}, {"score": 662, "count": 158, "cumulative": 2540}, {"score": 661, "count": 156, "cumulative": 2696}, {"score": 660, "count": 191, "cumulative": 2887}, {"score": 659, "count": 154, "cumulative": 3041}, {"score": 658, "count": 192, "cumulative": 3233}, {"score": 657, "count": 205, "cumulative": 3438}, {"score": 656, "count": 219, "cumulative": 3657}, {"score": 655, "count": 191, "cumulative": 3848}, {"score": 654, "count": 231, "cumulative": 4079}, {"score": 653, "count": 226, "cumulative": 4305}, {"score": 652, "count": 220, "cumulative": 4525}, {"score": 651, "count": 256, "cumulative": 4781}, {"score": 650, "count": 246, "cumulative": 5027}, {"score": 649, "count": 260, "cumulative": 5287}, {"score": 648, "count": 216, "cumulative": 5503}, {"score": 647, "count": 256, "cumulative": 5759}, {"score": 646, "count": 300, "cumulative": 6059}, {"score": 645, "count": 252, "cumulative": 6311}, {"score": 644, "count": 269, "cumulative": 6580}, {"score": 643, "count": 312, "cumulative": 6892}, {"score": 642, "count": 338, "cumulative": 7230}, {"score": 641, "count": 290, "cumulative": 7520}, {"score": 640, "count": 343, "cumulative": 7863}, {"score": 639, "count": 311, "cumulative": 8174}, {"score": 638, "count": 356, "cumulative": 8530}, {"score": 637, "count": 341, "cumulative": 8871}, {"score": 636, "count": 349, "cumulative": 9220}, {"score": 635, "count": 402, "cumulative": 9622}, {"score": 634, "count": 402, "cumulative": 10024}, {"score": 633, "count": 427, "cumulative": 10451}, {"score": 632, "count": 423, "cumulative": 10874}, {"score": 631, "count": 411, "cumulative": 11285}, {"score": 630, "count": 441, "cumulative": 11726}, {"score": 629, "count": 439, "cumulative": 12165}, {"score": 628, "count": 444, "cumulative": 12609}, {"score": 627, "count": 451, "cumulative": 13060}, {"score": 626, "count": 501, "cumulative": 13561}, {"score": 625, "count": 515, "cumulative": 14076}, {"score": 624, "count": 472, "cumulative": 14548}, {"score": 623, "count": 529, "cumulative": 15077}, {"score": 622, "count": 517, "cumulative": 15594}, {"score": 621, "count": 523, "cumulative": 16117}, {"score": 620, "count": 511, "cumulative": 16628}, {"score": 619, "count": 557, "cumulative": 17185}, {"score": 618, "count": 568, "cumulative": 17753}, {"score": 617, "count": 586, "cumulative": 18339}, {"score": 616, "count": 574, "cumulative": 18913}, {"score": 615, "count": 588, "cumulative": 19501}, {"score": 614, "count": 641, "cumulative": 20142}, {"score": 613, "count": 650, "cumulative": 20792}, {"score": 612, "count": 662, "cumulative": 21454}, {"score": 611, "count": 630, "cumulative": 22084}, {"score": 610, "count": 680, "cumulative": 22764}, {"score": 609, "count": 652, "cumulative": 23416}, {"score": 608, "count": 673, "cumulative": 24089}, {"score": 607, "count": 705, "cumulative": 24794}, {"score": 606, "count": 737, "cumulative": 25531}, {"score": 605, "count": 686, "cumulative": 26217}, {"score": 604, "count": 775, "cumulative": 26992}, {"score": 603, "count": 789, "cumulative": 27781}, {"score": 602, "count": 792, "cumulative": 28573}, {"score": 601, "count": 801, "cumulative": 29374}, {"score": 600, "count": 818, "cumulative": 30192}, {"score": 599, "count": 811, "cumulative": 31003}, {"score": 598, "count": 889, "cumulative": 31892}, {"score": 597, "count": 894, "cumulative": 32786}, {"score": 596, "count": 889, "cumulative": 33675}, {"score": 595, "count": 908, "cumulative": 34583}, {"score": 594, "count": 949, "cumulative": 35532}, {"score": 593, "count": 913, "cumulative": 36445}, {"score": 592, "count": 918, "cumulative": 37363}, {"score": 591, "count": 1043, "cumulative": 38406}, {"score": 590, "count": 981, "cumulative": 39387}, {"score": 589, "count": 974, "cumulative": 40361}, {"score": 588, "count": 1055, "cumulative": 41416}, {"score": 587, "count": 1032, "cumulative": 42448}, {"score": 586, "count": 1077, "cumulative": 43525}, {"score": 585, "count": 1071, "cumulative": 44596}, {"score": 584, "count": 1053, "cumulative": 45649}, {"score": 583, "count": 1088, "cumulative": 46737}, {"score": 582, "count": 1177, "cumulative": 47914}, {"score": 581, "count": 1191, "cumulative": 49105}, {"score": 580, "count": 1191, "cumulative": 50296}, {"score": 579, "count": 1167, "cumulative": 51463}, {"score": 578, "count": 1266, "cumulative": 52729}, {"score": 577, "count": 1220, "cumulative": 53949}, {"score": 576, "count": 1278, "cumulative": 55227}, {"score": 575, "count": 1318, "cumulative": 56545}, {"score": 574, "count": 1277, "cumulative": 57822}, {"score": 573, "count": 1266, "cumulative": 59088}, {"score": 572, "count": 1372, "cumulative": 60460}, {"score": 571, "count": 1379, "cumulative": 61839}, {"score": 570, "count": 1414, "cumulative": 63253}, {"score": 569, "count": 1389, "cumulative": 64642}, {"score": 568, "count": 1439, "cumulative": 66081}, {"score": 567, "count": 1421, "cumulative": 67502}, {"score": 566, "count": 1417, "cumulative": 68919}, {"score": 565, "count": 1436, "cumulative": 70355}, {"score": 564, "count": 1521, "cumulative": 71876}, {"score": 563, "count": 1510, "cumulative": 73386}, {"score": 562, "count": 1537, "cumulative": 74923}, {"score": 561, "count": 1614, "cumulative": 76537}, {"score": 560, "count": 1615, "cumulative": 78152}, {"score": 559, "count": 1584, "cumulative": 79736}, {"score": 558, "count": 1597, "cumulative": 81333}, {"score": 557, "count": 1696, "cumulative": 83029}, {"score": 556, "count": 1764, "cumulative": 84793}, {"score": 555, "count": 1697, "cumulative": 86490}, {"score": 554, "count": 1732, "cumulative": 88222}, {"score": 553, "count": 1751, "cumulative": 89973}, {"score": 552, "count": 1737, "cumulative": 91710}, {"score": 551, "count": 1794, "cumulative": 93504}, {"score": 550, "count": 1730, "cumulative": 95234}, {"score": 549, "count": 1831, "cumulative": 97065}, {"score": 548, "count": 1852, "cumulative": 98917}, {"score": 547, "count": 1846, "cumulative": 100763}, {"score": 546, "count": 1836, "cumulative": 102599}, {"score": 545, "count": 1908, "cumulative": 104507}, {"score": 544, "count": 1912, "cumulative": 106419}, {"score": 543, "count": 1979, "cumulative": 108398}, {"score": 542, "count": 1950, "cumulative": 110348}, {"score": 541, "count": 1994, "cumulative": 112342}, {"score": 540, "count": 2029, "cumulative": 114371}, {"score": 539, "count": 1963, "cumulative": 116334}, {"score": 538, "count": 1980, "cumulative": 118314}, {"score": 537, "count": 2079, "cumulative": 120393}, {"score": 536, "count": 1999, "cumulative": 122392}, {"score": 535, "count": 2121, "cumulative": 124513}, {"score": 534, "count": 2156, "cumulative": 126669}, {"score": 533, "count": 2195, "cumulative": 128864}, {"score": 532, "count": 2076, "cumulative": 130940}, {"score": 531, "count": 2193, "cumulative": 133133}, {"score": 530, "count": 2120, "cumulative": 135253}, {"score": 529, "count": 2294, "cumulative": 137547}, {"score": 528, "count": 2273, "cumulative": 139820}, {"score": 527, "count": 2324, "cumulative": 142144}, {"score": 526, "count": 2329, "cumulative": 144473}, {"score": 525, "count": 2202, "cumulative": 146675}, {"score": 524, "count": 2150, "cumulative": 148825}, {"score": 523, "count": 2299, "cumulative": 151124}, {"score": 522, "count": 2255, "cumulative": 153379}, {"score": 521, "count": 2380, "cumulative": 155759}, {"score": 520, "count": 2354, "cumulative": 158113}, {"score": 519, "count": 2303, "cumulative": 160416}, {"score": 518, "count": 2410, "cumulative": 162826}, {"score": 517, "count": 2283, "cumulative": 165109}, {"score": 516, "count": 2433, "cumulative": 167542}, {"score": 515, "count": 2378, "cumulative": 169920}, {"score": 514, "count": 2415, "cumulative": 172335}, {"score": 513, "count": 2443, "cumulative": 174778}, {"score": 512, "count": 2414, "cumulative": 177192}, {"score": 511, "count": 2456, "cumulative": 179648}, {"score": 510, "count": 2445, "cumulative": 182093}, {"score": 509, "count": 2488, "cumulative": 184581}, {"score": 508, "count": 2417, "cumulative": 186998}, {"score": 507, "count": 2509, "cumulative": 189507}, {"score": 506, "count": 2471, "cumulative": 191978}, {"score": 505, "count": 2560, "cumulative": 194538}, {"score": 504, "count": 2586, "cumulative": 197124}, {"score": 503, "count": 2568, "cumulative": 199692}, {"score": 502, "count": 2517, "cumulative": 202209}, {"score": 501, "count": 2518, "cumulative": 204727}, {"score": 500, "count": 2522, "cumulative": 207249}, {"score": 499, "count": 2463, "cumulative": 209712}, {"score": 498, "count": 2496, "cumulative": 212208}, {"score": 497, "count": 2473, "cumulative": 214681}, {"score": 496, "count": 2536, "cumulative": 217217}, {"score": 495, "count": 2547, "cumulative": 219764}, {"score": 494, "count": 2543, "cumulative": 222307}, {"score": 493, "count": 2702, "cumulative": 225009}, {"score": 492, "count": 2547, "cumulative": 227556}, {"score": 491, "count": 2566, "cumulative": 230122}, {"score": 490, "count": 2619, "cumulative": 232741}, {"score": 489, "count": 2586, "cumulative": 235327}, {"score": 488, "count": 2676, "cumulative": 238003}, {"score": 487, "count": 2615, "cumulative": 240618}, {"score": 486, "count": 2562, "cumulative": 243180}, {"score": 485, "count": 2633, "cumulative": 245813}, {"score": 484, "count": 2576, "cumulative": 248389}, {"score": 483, "count": 2583, "cumulative": 250972}, {"score": 482, "count": 2738, "cumulative": 253710}, {"score": 481, "count": 2620, "cumulative": 256330}, {"score": 480, "count": 2581, "cumulative": 258911}, {"score": 479, "count": 2605, "cumulative": 261516}, {"score": 478, "count": 2643, "cumulative": 264159}, {"score": 477, "count": 2668, "cumulative": 266827}, {"score": 476, "count": 2601, "cumulative": 269428}, {"score": 475, "count": 2530, "cumulative": 271958}, {"score": 474, "count": 2591, "cumulative": 274549}, {"score": 473, "count": 2527, "cumulative": 277076}, {"score": 472, "count": 2699, "cumulative": 279775}, {"score": 471, "count": 2639, "cumulative": 282414}, {"score": 470, "count": 2516, "cumulative": 284930}, {"score": 469, "count": 2583, "cumulative": 287513}, {"score": 468, "count": 2639, "cumulative": 290152}, {"score": 467, "count": 2498, "cumulative": 292650}, {"score": 466, "count": 2599, "cumulative": 295249}, {"score": 465, "count": 2556, "cumulative": 297805}, {"score": 464, "count": 2540, "cumulative": 300345}, {"score": 463, "count": 2644, "cumulative": 302989}, {"score": 462, "count": 2548, "cumulative": 305537}, {"score": 461, "count": 2633, "cumulative": 308170}, {"score": 460, "count": 2543, "cumulative": 310713}, {"score": 459, "count": 2531, "cumulative": 313244}, {"score": 458, "count": 2519, "cumulative": 315763}, {"score": 457, "count": 2502, "cumulative": 318265}, {"score": 456, "count": 2567, "cumulative": 320832}, {"score": 455, "count": 2446, "cumulative": 323278}, {"score": 454, "count": 2485, "cumulative": 325763}, {"score": 453, "count": 2464, "cumulative": 328227}, {"score": 452, "count": 2583, "cumulative": 330810}, {"score": 451, "count": 2478, "cumulative": 333288}, {"score": 450, "count": 2613, "cumulative": 335901}, {"score": 449, "count": 2502, "cumulative": 338403}, {"score": 448, "count": 2456, "cumulative": 340859}, {"score": 447, "count": 2427, "cumulative": 343286}, {"score": 446, "count": 2504, "cumulative": 345790}, {"score": 445, "count": 2372, "cumulative": 348162}, {"score": 444, "count": 2477, "cumulative": 350639}, {"score": 443, "count": 2525, "cumulative": 353164}, {"score": 442, "count": 2473, "cumulative": 355637}, {"score": 441, "count": 2450, "cumulative": 358087}, {"score": 440, "count": 2349, "cumulative": 360436}, {"score": 439, "count": 2446, "cumulative": 362882}, {"score": 438, "count": 2329, "cumulative": 365211}, {"score": 437, "count": 2378, "cumulative": 367589}, {"score": 436, "count": 2466, "cumulative": 370055}, {"score": 435, "count": 2396, "cumulative": 372451}, {"score": 434, "count": 2402, "cumulative": 374853}, {"score": 433, "count": 2394, "cumulative": 377247}, {"score": 432, "count": 2375, "cumulative": 379622}, {"score": 431, "count": 2332, "cumulative": 381954}, {"score": 430, "count": 2369, "cumulative": 384323}, {"score": 429, "count": 2429, "cumulative": 386752}, {"score": 428, "count": 2295, "cumulative": 389047}, {"score": 427, "count": 2355, "cumulative": 391402}, {"score": 426, "count": 2287, "cumulative": 393689}, {"score": 425, "count": 2448, "cumulative": 396137}, {"score": 424, "count": 2301, "cumulative": 398438}, {"score": 423, "count": 2230, "cumulative": 400668}, {"score": 422, "count": 2291, "cumulative": 402959}, {"score": 421, "count": 2356, "cumulative": 405315}, {"score": 420, "count": 2253, "cumulative": 407568}, {"score": 419, "count": 2265, "cumulative": 409833}, {"score": 418, "count": 2311, "cumulative": 412144}, {"score": 417, "count": 2325, "cumulative": 414469}, {"score": 416, "count": 2248, "cumulative": 416717}, {"score": 415, "count": 2321, "cumulative": 419038}, {"score": 414, "count": 2284, "cumulative": 421322}, {"score": 413, "count": 2181, "cumulative": 423503}, {"score": 412, "count": 2183, "cumulative": 425686}, {"score": 411, "count": 2272, "cumulative": 427958}, {"score": 410, "count": 2220, "cumulative": 430178}, {"score": 409, "count": 2249, "cumulative": 432427}, {"score": 408, "count": 2217, "cumulative": 434644}, {"score": 407, "count": 2222, "cumulative": 436866}, {"score": 406, "count": 2201, "cumulative": 439067}, {"score": 405, "count": 2127, "cumulative": 441194}, {"score": 404, "count": 2224, "cumulative": 443418}, {"score": 403, "count": 2118, "cumulative": 445536}, {"score": 402, "count": 2268, "cumulative": 447804}, {"score": 401, "count": 2249, "cumulative": 450053}, {"score": 400, "count": 2188, "cumulative": 452241}, {"score": 399, "count": 2156, "cumulative": 454397}, {"score": 398, "count": 2237, "cumulative": 456634}, {"score": 397, "count": 2156, "cumulative": 458790}, {"score": 396, "count": 2071, "cumulative": 460861}, {"score": 395, "count": 2188, "cumulative": 463049}, {"score": 394, "count": 2145, "cumulative": 465194}, {"score": 393, "count": 2205, "cumulative": 467399}, {"score": 392, "count": 2147, "cumulative": 469546}, {"score": 391, "count": 2199, "cumulative": 471745}, {"score": 390, "count": 2168, "cumulative": 473913}, {"score": 389, "count": 2146, "cumulative": 476059}, {"score": 388, "count": 2146, "cumulative": 478205}, {"score": 387, "count": 2094, "cumulative": 480299}, {"score": 386, "count": 2091, "cumulative": 482390}, {"score": 385, "count": 2058, "cumulative": 484448}, {"score": 384, "count": 2196, "cumulative": 486644}, {"score": 383, "count": 2102, "cumulative": 488746}, {"score": 382, "count": 2153, "cumulative": 490899}, {"score": 381, "count": 2047, "cumulative": 492946}, {"score": 380, "count": 1988, "cumulative": 494934}, {"score": 379, "count": 2033, "cumulative": 496967}, {"score": 378, "count": 2049, "cumulative": 499016}, {"score": 377, "count": 2128, "cumulative": 501144}, {"score": 376, "count": 2039, "cumulative": 503183}, {"score": 375, "count": 2084, "cumulative": 505267}, {"score": 374, "count": 1973, "cumulative": 507240}, {"score": 373, "count": 1992, "cumulative": 509232}, {"score": 372, "count": 2043, "cumulative": 511275}, {"score": 371, "count": 2040, "cumulative": 513315}, {"score": 370, "count": 1935, "cumulative": 515250}, {"score": 369, "count": 1931, "cumulative": 517181}, {"score": 368, "count": 1965, "cumulative": 519146}, {"score": 367, "count": 1922, "cumulative": 521068}, {"score": 366, "count": 2024, "cumulative": 523092}, {"score": 365, "count": 1923, "cumulative": 525015}, {"score": 364, "count": 1913, "cumulative": 526928}, {"score": 363, "count": 1922, "cumulative": 528850}, {"score": 362, "count": 1860, "cumulative": 530710}, {"score": 361, "count": 1917, "cumulative": 532627}, {"score": 360, "count": 1889, "cumulative": 534516}, {"score": 359, "count": 1889, "cumulative": 536405}, {"score": 358, "count": 1965, "cumulative": 538370}, {"score": 357, "count": 1825, "cumulative": 540195}, {"score": 356, "count": 1881, "cumulative": 542076}, {"score": 355, "count": 1804, "cumulative": 543880}, {"score": 354, "count": 1908, "cumulative": 545788}, {"score": 353, "count": 1750, "cumulative": 547538}, {"score": 352, "count": 1834, "cumulative": 549372}, {"score": 351, "count": 1913, "cumulative": 551285}, {"score": 350, "count": 1822, "cumulative": 553107}, {"score": 349, "count": 1817, "cumulative": 554924}, {"score": 348, "count": 1756, "cumulative": 556680}, {"score": 347, "count": 1799, "cumulative": 558479}, {"score": 346, "count": 1803, "cumulative": 560282}, {"score": 345, "count": 1729, "cumulative": 562011}, {"score": 344, "count": 1758, "cumulative": 563769}, {"score": 343, "count": 1788, "cumulative": 565557}, {"score": 342, "count": 1739, "cumulative": 567296}, {"score": 341, "count": 1820, "cumulative": 569116}, {"score": 340, "count": 1702, "cumulative": 570818}, {"score": 339, "count": 1715, "cumulative": 572533}, {"score": 338, "count": 1707, "cumulative": 574240}, {"score": 337, "count": 1663, "cumulative": 575903}, {"score": 336, "count": 1744, "cumulative": 577647}, {"score": 335, "count": 1660, "cumulative": 579307}, {"score": 334, "count": 1676, "cumulative": 580983}, {"score": 333, "count": 1649, "cumulative": 582632}, {"score": 332, "count": 1652, "cumulative": 584284}, {"score": 331, "count": 1644, "cumulative": 585928}, {"score": 330, "count": 1605, "cumulative": 587533}, {"score": 329, "count": 1639, "cumulative": 589172}, {"score": 328, "count": 1626, "cumulative": 590798}, {"score": 327, "count": 1559, "cumulative": 592357}, {"score": 326, "count": 1494, "cumulative": 593851}, {"score": 325, "count": 1616, "cumulative": 595467}, {"score": 324, "count": 1557, "cumulative": 597024}, {"score": 323, "count": 1565, "cumulative": 598589}, {"score": 322, "count": 1533, "cumulative": 600122}, {"score": 321, "count": 1597, "cumulative": 601719}, {"score": 320, "count": 1635, "cumulative": 603354}, {"score": 319, "count": 1526, "cumulative": 604880}, {"score": 318, "count": 1479, "cumulative": 606359}, {"score": 317, "count": 1507, "cumulative": 607866}, {"score": 316, "count": 1454, "cumulative": 609320}, {"score": 315, "count": 1463, "cumulative": 610783}, {"score": 314, "count": 1557, "cumulative": 612340}, {"score": 313, "count": 1412, "cumulative": 613752}, {"score": 312, "count": 1485, "cumulative": 615237}, {"score": 311, "count": 1461, "cumulative": 616698}, {"score": 310, "count": 1392, "cumulative": 618090}, {"score": 309, "count": 1441, "cumulative": 619531}, {"score": 308, "count": 1332, "cumulative": 620863}, {"score": 307, "count": 1430, "cumulative": 622293}, {"score": 306, "count": 1362, "cumulative": 623655}, {"score": 305, "count": 1352, "cumulative": 625007}, {"score": 304, "count": 1369, "cumulative": 626376}, {"score": 303, "count": 1342, "cumulative": 627718}, {"score": 302, "count": 1342, "cumulative": 629060}, {"score": 301, "count": 1340, "cumulative": 630400}, {"score": 300, "count": 1348, "cumulative": 631748}, {"score": 299, "count": 1262, "cumulative": 633010}, {"score": 298, "count": 1252, "cumulative": 634262}, {"score": 297, "count": 1284, "cumulative": 635546}, {"score": 296, "count": 1281, "cumulative": 636827}, {"score": 295, "count": 1281, "cumulative": 638108}, {"score": 294, "count": 1250, "cumulative": 639358}, {"score": 293, "count": 1178, "cumulative": 640536}, {"score": 292, "count": 1237, "cumulative": 641773}, {"score": 291, "count": 1197, "cumulative": 642970}, {"score": 290, "count": 1174, "cumulative": 644144}, {"score": 289, "count": 1158, "cumulative": 645302}, {"score": 288, "count": 1168, "cumulative": 646470}, {"score": 287, "count": 1185, "cumulative": 647655}, {"score": 286, "count": 1185, "cumulative": 648840}, {"score": 285, "count": 1228, "cumulative": 650068}, {"score": 284, "count": 1134, "cumulative": 651202}, {"score": 283, "count": 1111, "cumulative": 652313}, {"score": 282, "count": 1156, "cumulative": 653469}, {"score": 281, "count": 1199, "cumulative": 654668}, {"score": 280, "count": 1133, "cumulative": 655801}, {"score": 279, "count": 1081, "cumulative": 656882}, {"score": 278, "count": 1112, "cumulative": 657994}, {"score": 277, "count": 1064, "cumulative": 659058}, {"score": 276, "count": 1080, "cumulative": 660138}, {"score": 275, "count": 1012, "cumulative": 661150}, {"score": 274, "count": 1061, "cumulative": 662211}, {"score": 273, "count": 1016, "cumulative": 663227}, {"score": 272, "count": 1003, "cumulative": 664230}, {"score": 271, "count": 1010, "cumulative": 665240}, {"score": 270, "count": 1019, "cumulative": 666259}, {"score": 269, "count": 947, "cumulative": 667206}, {"score": 268, "count": 950, "cumulative": 668156}, {"score": 267, "count": 933, "cumulative": 669089}, {"score": 266, "count": 911, "cumulative": 670000}, {"score": 265, "count": 929, "cumulative": 670929}, {"score": 264, "count": 899, "cumulative": 671828}, {"score": 263, "count": 923, "cumulative": 672751}, {"score": 262, "count": 865, "cumulative": 673616}, {"score": 261, "count": 813, "cumulative": 674429}, {"score": 260, "count": 845, "cumulative": 675274}, {"score": 259, "count": 800, "cumulative": 676074}, {"score": 258, "count": 822, "cumulative": 676896}, {"score": 257, "count": 860, "cumulative": 677756}, {"score": 256, "count": 847, "cumulative": 678603}, {"score": 255, "count": 764, "cumulative": 679367}, {"score": 254, "count": 742, "cumulative": 680109}, {"score": 253, "count": 780, "cumulative": 680889}, {"score": 252, "count": 745, "cumulative": 681634}, {"score": 251, "count": 763, "cumulative": 682397}, {"score": 250, "count": 744, "cumulative": 683141}, {"score": 249, "count": 685, "cumulative": 683826}, {"score": 248, "count": 694, "cumulative": 684520}, {"score": 247, "count": 691, "cumulative": 685211}, {"score": 246, "count": 682, "cumulative": 685893}, {"score": 245, "count": 656, "cumulative": 686549}, {"score": 244, "count": 643, "cumulative": 687192}, {"score": 243, "count": 647, "cumulative": 687839}, {"score": 242, "count": 595, "cumulative": 688434}, {"score": 241, "count": 611, "cumulative": 689045}, {"score": 240, "count": 600, "cumulative": 689645}, {"score": 239, "count": 573, "cumulative": 690218}, {"score": 238, "count": 574, "cumulative": 690792}, {"score": 237, "count": 519, "cumulative": 691311}, {"score": 236, "count": 551, "cumulative": 691862}, {"score": 235, "count": 496, "cumulative": 692358}, {"score": 234, "count": 525, "cumulative": 692883}, {"score": 233, "count": 462, "cumulative": 693345}, {"score": 232, "count": 511, "cumulative": 693856}, {"score": 231, "count": 444, "cumulative": 694300}, {"score": 230, "count": 466, "cumulative": 694766}, {"score": 229, "count": 435, "cumulative": 695201}, {"score": 228, "count": 442, "cumulative": 695643}, {"score": 227, "count": 421, "cumulative": 696064}, {"score": 226, "count": 423, "cumulative": 696487}, {"score": 225, "count": 425, "cumulative": 696912}, {"score": 224, "count": 403, "cumulative": 697315}, {"score": 223, "count": 411, "cumulative": 697726}, {"score": 222, "count": 404, "cumulative": 698130}, {"score": 221, "count": 347, "cumulative": 698477}, {"score": 220, "count": 395, "cumulative": 698872}, {"score": 219, "count": 330, "cumulative": 699202}, {"score": 218, "count": 332, "cumulative": 699534}, {"score": 217, "count": 339, "cumulative": 699873}, {"score": 216, "count": 307, "cumulative": 700180}, {"score": 215, "count": 335, "cumulative": 700515}, {"score": 214, "count": 320, "cumulative": 700835}, {"score": 213, "count": 294, "cumulative": 701129}, {"score": 212, "count": 276, "cumulative": 701405}, {"score": 211, "count": 272, "cumulative": 701677}, {"score": 210, "count": 248, "cumulative": 701925}, {"score": 209, "count": 255, "cumulative": 702180}, {"score": 208, "count": 231, "cumulative": 702411}, {"score": 207, "count": 211, "cumulative": 702622}, {"score": 206, "count": 212, "cumulative": 702834}, {"score": 205, "count": 219, "cumulative": 703053}, {"score": 204, "count": 200, "cumulative": 703253}, {"score": 203, "count": 222, "cumulative": 703475}, {"score": 202, "count": 202, "cumulative": 703677}, {"score": 201, "count": 167, "cumulative": 703844}, {"score": 200, "count": 186, "cumulative": 704030}, {"score": 199, "count": 196, "cumulative": 704226}, {"score": 198, "count": 195, "cumulative": 704421}, {"score": 197, "count": 178, "cumulative": 704599}, {"score": 196, "count": 163, "cumulative": 704762}, {"score": 195, "count": 166, "cumulative": 704928}, {"score": 194, "count": 143, "cumulative": 705071}, {"score": 193, "count": 147, "cumulative": 705218}, {"score": 192, "count": 137, "cumulative": 705355}, {"score": 191, "count": 118, "cumulative": 705473}, {"score": 190, "count": 133, "cumulative": 705606}, {"score": 189, "count": 136, "cumulative": 705742}, {"score": 188, "count": 119, "cumulative": 705861}, {"score": 187, "count": 122, "cumulative": 705983}, {"score": 186, "count": 105, "cumulative": 706088}, {"score": 185, "count": 118, "cumulative": 706206}, {"score": 184, "count": 108, "cumulative": 706314}, {"score": 183, "count": 93, "cumulative": 706407}, {"score": 182, "count": 93, "cumulative": 706500}, {"score": 181, "count": 93, "cumulative": 706593}, {"score": 180, "count": 98, "cumulative": 706691}, {"score": 179, "count": 82, "cumulative": 706773}, {"score": 178, "count": 92, "cumulative": 706865}, {"score": 177, "count": 88, "cumulative": 706953}, {"score": 176, "count": 83, "cumulative": 707036}, {"score": 175, "count": 95, "cumulative": 707131}, {"score": 174, "count": 68, "cumulative": 707199}, {"score": 173, "count": 89, "cumulative": 707288}, {"score": 172, "count": 83, "cumulative": 707371}, {"score": 171, "count": 87, "cumulative": 707458}, {"score": 170, "count": 59, "cumulative": 707517}, {"score": 169, "count": 64, "cumulative": 707581}, {"score": 168, "count": 77, "cumulative": 707658}, {"score": 167, "count": 70, "cumulative": 707728}, {"score": 166, "count": 73, "cumulative": 707801}, {"score": 165, "count": 78, "cumulative": 707879}, {"score": 164, "count": 63, "cumulative": 707942}, {"score": 163, "count": 71, "cumulative": 708013}, {"score": 162, "count": 72, "cumulative": 708085}, {"score": 161, "count": 67, "cumulative": 708152}, {"score": 160, "count": 78, "cumulative": 708230}, {"score": 159, "count": 55, "cumulative": 708285}, {"score": 158, "count": 59, "cumulative": 708344}, {"score": 157, "count": 52, "cumulative": 708396}, {"score": 156, "count": 69, "cumulative": 708465}, {"score": 155, "count": 65, "cumulative": 708530}, {"score": 154, "count": 60, "cumulative": 708590}, {"score": 153, "count": 64, "cumulative": 708654}, {"score": 152, "count": 46, "cumulative": 708700}, {"score": 151, "count": 63, "cumulative": 708763}, {"score": 150, "count": 54, "cumulative": 708817}]}
@@ -0,0 +1 @@
1
+ {"province": "shanxi", "province_name": "山西", "year": 2026, "track": "history", "track_cn": "历史类", "source": "省考试院 / eol.cn (一分一段表全表)", "source_url": "https://gaokao.eol.cn/shan_xi/dongtai/202606/t20260625_2749365.shtml", "note": "山西 2026 3+1+2 历史类 全表(官方左右双块版式);顶档'695分以上'为合并段;count 由 cumulative(位次)反推", "count": 220, "rows": [{"score": 668, "count": 13, "cumulative": 13}, {"score": 667, "count": 3, "cumulative": 16}, {"score": 666, "count": 2, "cumulative": 18}, {"score": 665, "count": 3, "cumulative": 21}, {"score": 664, "count": 1, "cumulative": 22}, {"score": 663, "count": 1, "cumulative": 23}, {"score": 662, "count": 1, "cumulative": 24}, {"score": 661, "count": 3, "cumulative": 27}, {"score": 660, "count": 2, "cumulative": 29}, {"score": 659, "count": 6, "cumulative": 35}, {"score": 658, "count": 3, "cumulative": 38}, {"score": 657, "count": 11, "cumulative": 49}, {"score": 656, "count": 8, "cumulative": 57}, {"score": 655, "count": 3, "cumulative": 60}, {"score": 654, "count": 6, "cumulative": 66}, {"score": 653, "count": 5, "cumulative": 71}, {"score": 652, "count": 8, "cumulative": 79}, {"score": 651, "count": 10, "cumulative": 89}, {"score": 650, "count": 7, "cumulative": 96}, {"score": 649, "count": 7, "cumulative": 103}, {"score": 648, "count": 10, "cumulative": 113}, {"score": 647, "count": 14, "cumulative": 127}, {"score": 646, "count": 10, "cumulative": 137}, {"score": 645, "count": 14, "cumulative": 151}, {"score": 644, "count": 11, "cumulative": 162}, {"score": 643, "count": 18, "cumulative": 180}, {"score": 642, "count": 6, "cumulative": 186}, {"score": 641, "count": 13, "cumulative": 199}, {"score": 640, "count": 19, "cumulative": 218}, {"score": 639, "count": 16, "cumulative": 234}, {"score": 638, "count": 10, "cumulative": 244}, {"score": 637, "count": 20, "cumulative": 264}, {"score": 636, "count": 12, "cumulative": 276}, {"score": 635, "count": 24, "cumulative": 300}, {"score": 634, "count": 14, "cumulative": 314}, {"score": 633, "count": 24, "cumulative": 338}, {"score": 632, "count": 21, "cumulative": 359}, {"score": 631, "count": 22, "cumulative": 381}, {"score": 630, "count": 21, "cumulative": 402}, {"score": 629, "count": 24, "cumulative": 426}, {"score": 628, "count": 19, "cumulative": 445}, {"score": 627, "count": 35, "cumulative": 480}, {"score": 626, "count": 24, "cumulative": 504}, {"score": 625, "count": 22, "cumulative": 526}, {"score": 624, "count": 30, "cumulative": 556}, {"score": 623, "count": 32, "cumulative": 588}, {"score": 622, "count": 30, "cumulative": 618}, {"score": 621, "count": 27, "cumulative": 645}, {"score": 620, "count": 44, "cumulative": 689}, {"score": 619, "count": 37, "cumulative": 726}, {"score": 618, "count": 46, "cumulative": 772}, {"score": 617, "count": 43, "cumulative": 815}, {"score": 616, "count": 36, "cumulative": 851}, {"score": 615, "count": 43, "cumulative": 894}, {"score": 614, "count": 40, "cumulative": 934}, {"score": 613, "count": 35, "cumulative": 969}, {"score": 612, "count": 37, "cumulative": 1006}, {"score": 611, "count": 47, "cumulative": 1053}, {"score": 610, "count": 54, "cumulative": 1107}, {"score": 609, "count": 50, "cumulative": 1157}, {"score": 608, "count": 43, "cumulative": 1200}, {"score": 607, "count": 49, "cumulative": 1249}, {"score": 606, "count": 52, "cumulative": 1301}, {"score": 605, "count": 62, "cumulative": 1363}, {"score": 604, "count": 62, "cumulative": 1425}, {"score": 603, "count": 60, "cumulative": 1485}, {"score": 602, "count": 51, "cumulative": 1536}, {"score": 601, "count": 59, "cumulative": 1595}, {"score": 600, "count": 54, "cumulative": 1649}, {"score": 599, "count": 62, "cumulative": 1711}, {"score": 598, "count": 58, "cumulative": 1769}, {"score": 597, "count": 57, "cumulative": 1826}, {"score": 596, "count": 71, "cumulative": 1897}, {"score": 595, "count": 73, "cumulative": 1970}, {"score": 594, "count": 63, "cumulative": 2033}, {"score": 593, "count": 71, "cumulative": 2104}, {"score": 592, "count": 81, "cumulative": 2185}, {"score": 591, "count": 65, "cumulative": 2250}, {"score": 590, "count": 71, "cumulative": 2321}, {"score": 589, "count": 66, "cumulative": 2387}, {"score": 588, "count": 93, "cumulative": 2480}, {"score": 587, "count": 95, "cumulative": 2575}, {"score": 586, "count": 74, "cumulative": 2649}, {"score": 585, "count": 114, "cumulative": 2763}, {"score": 584, "count": 95, "cumulative": 2858}, {"score": 583, "count": 91, "cumulative": 2949}, {"score": 582, "count": 94, "cumulative": 3043}, {"score": 581, "count": 85, "cumulative": 3128}, {"score": 580, "count": 82, "cumulative": 3210}, {"score": 579, "count": 103, "cumulative": 3313}, {"score": 578, "count": 104, "cumulative": 3417}, {"score": 577, "count": 90, "cumulative": 3507}, {"score": 576, "count": 91, "cumulative": 3598}, {"score": 575, "count": 108, "cumulative": 3706}, {"score": 574, "count": 103, "cumulative": 3809}, {"score": 573, "count": 109, "cumulative": 3918}, {"score": 572, "count": 94, "cumulative": 4012}, {"score": 571, "count": 98, "cumulative": 4110}, {"score": 570, "count": 104, "cumulative": 4214}, {"score": 569, "count": 117, "cumulative": 4331}, {"score": 568, "count": 100, "cumulative": 4431}, {"score": 567, "count": 111, "cumulative": 4542}, {"score": 566, "count": 111, "cumulative": 4653}, {"score": 565, "count": 108, "cumulative": 4761}, {"score": 564, "count": 103, "cumulative": 4864}, {"score": 563, "count": 134, "cumulative": 4998}, {"score": 562, "count": 112, "cumulative": 5110}, {"score": 561, "count": 121, "cumulative": 5231}, {"score": 560, "count": 127, "cumulative": 5358}, {"score": 559, "count": 131, "cumulative": 5489}, {"score": 538, "count": 3023, "cumulative": 8512}, {"score": 537, "count": 144, "cumulative": 8656}, {"score": 536, "count": 144, "cumulative": 8800}, {"score": 535, "count": 191, "cumulative": 8991}, {"score": 534, "count": 176, "cumulative": 9167}, {"score": 533, "count": 176, "cumulative": 9343}, {"score": 532, "count": 193, "cumulative": 9536}, {"score": 531, "count": 167, "cumulative": 9703}, {"score": 530, "count": 182, "cumulative": 9885}, {"score": 529, "count": 169, "cumulative": 10054}, {"score": 528, "count": 165, "cumulative": 10219}, {"score": 527, "count": 157, "cumulative": 10376}, {"score": 526, "count": 171, "cumulative": 10547}, {"score": 525, "count": 184, "cumulative": 10731}, {"score": 524, "count": 190, "cumulative": 10921}, {"score": 523, "count": 175, "cumulative": 11096}, {"score": 522, "count": 183, "cumulative": 11279}, {"score": 521, "count": 195, "cumulative": 11474}, {"score": 520, "count": 196, "cumulative": 11670}, {"score": 519, "count": 182, "cumulative": 11852}, {"score": 518, "count": 202, "cumulative": 12054}, {"score": 517, "count": 197, "cumulative": 12251}, {"score": 516, "count": 178, "cumulative": 12429}, {"score": 515, "count": 189, "cumulative": 12618}, {"score": 514, "count": 199, "cumulative": 12817}, {"score": 513, "count": 195, "cumulative": 13012}, {"score": 512, "count": 214, "cumulative": 13226}, {"score": 511, "count": 215, "cumulative": 13441}, {"score": 510, "count": 188, "cumulative": 13629}, {"score": 509, "count": 211, "cumulative": 13840}, {"score": 508, "count": 210, "cumulative": 14050}, {"score": 507, "count": 208, "cumulative": 14258}, {"score": 506, "count": 228, "cumulative": 14486}, {"score": 505, "count": 189, "cumulative": 14675}, {"score": 504, "count": 206, "cumulative": 14881}, {"score": 503, "count": 205, "cumulative": 15086}, {"score": 502, "count": 222, "cumulative": 15308}, {"score": 501, "count": 200, "cumulative": 15508}, {"score": 500, "count": 224, "cumulative": 15732}, {"score": 499, "count": 212, "cumulative": 15944}, {"score": 498, "count": 224, "cumulative": 16168}, {"score": 497, "count": 222, "cumulative": 16390}, {"score": 496, "count": 222, "cumulative": 16612}, {"score": 495, "count": 215, "cumulative": 16827}, {"score": 494, "count": 229, "cumulative": 17056}, {"score": 493, "count": 223, "cumulative": 17279}, {"score": 492, "count": 213, "cumulative": 17492}, {"score": 491, "count": 221, "cumulative": 17713}, {"score": 490, "count": 245, "cumulative": 17958}, {"score": 489, "count": 229, "cumulative": 18187}, {"score": 488, "count": 223, "cumulative": 18410}, {"score": 487, "count": 237, "cumulative": 18647}, {"score": 486, "count": 205, "cumulative": 18852}, {"score": 485, "count": 232, "cumulative": 19084}, {"score": 484, "count": 220, "cumulative": 19304}, {"score": 483, "count": 231, "cumulative": 19535}, {"score": 482, "count": 232, "cumulative": 19767}, {"score": 481, "count": 252, "cumulative": 20019}, {"score": 480, "count": 245, "cumulative": 20264}, {"score": 479, "count": 208, "cumulative": 20472}, {"score": 478, "count": 254, "cumulative": 20726}, {"score": 477, "count": 244, "cumulative": 20970}, {"score": 476, "count": 239, "cumulative": 21209}, {"score": 475, "count": 236, "cumulative": 21445}, {"score": 474, "count": 218, "cumulative": 21663}, {"score": 473, "count": 228, "cumulative": 21891}, {"score": 472, "count": 212, "cumulative": 22103}, {"score": 471, "count": 238, "cumulative": 22341}, {"score": 470, "count": 215, "cumulative": 22556}, {"score": 469, "count": 232, "cumulative": 22788}, {"score": 468, "count": 229, "cumulative": 23017}, {"score": 467, "count": 210, "cumulative": 23227}, {"score": 466, "count": 246, "cumulative": 23473}, {"score": 465, "count": 229, "cumulative": 23702}, {"score": 464, "count": 252, "cumulative": 23954}, {"score": 463, "count": 231, "cumulative": 24185}, {"score": 462, "count": 225, "cumulative": 24410}, {"score": 461, "count": 218, "cumulative": 24628}, {"score": 460, "count": 257, "cumulative": 24885}, {"score": 459, "count": 200, "cumulative": 25085}, {"score": 458, "count": 212, "cumulative": 25297}, {"score": 457, "count": 210, "cumulative": 25507}, {"score": 456, "count": 233, "cumulative": 25740}, {"score": 455, "count": 212, "cumulative": 25952}, {"score": 454, "count": 255, "cumulative": 26207}, {"score": 453, "count": 216, "cumulative": 26423}, {"score": 452, "count": 218, "cumulative": 26641}, {"score": 451, "count": 202, "cumulative": 26843}, {"score": 450, "count": 231, "cumulative": 27074}, {"score": 449, "count": 256, "cumulative": 27330}, {"score": 448, "count": 213, "cumulative": 27543}, {"score": 447, "count": 235, "cumulative": 27778}, {"score": 446, "count": 238, "cumulative": 28016}, {"score": 445, "count": 202, "cumulative": 28218}, {"score": 444, "count": 218, "cumulative": 28436}, {"score": 443, "count": 190, "cumulative": 28626}, {"score": 442, "count": 208, "cumulative": 28834}, {"score": 441, "count": 234, "cumulative": 29068}, {"score": 440, "count": 222, "cumulative": 29290}, {"score": 439, "count": 225, "cumulative": 29515}, {"score": 438, "count": 212, "cumulative": 29727}, {"score": 437, "count": 198, "cumulative": 29925}, {"score": 436, "count": 200, "cumulative": 30125}, {"score": 435, "count": 218, "cumulative": 30343}, {"score": 434, "count": 212, "cumulative": 30555}, {"score": 433, "count": 202, "cumulative": 30757}, {"score": 432, "count": 190, "cumulative": 30947}, {"score": 431, "count": 209, "cumulative": 31156}, {"score": 430, "count": 198, "cumulative": 31354}, {"score": 429, "count": 197, "cumulative": 31551}]}
@@ -0,0 +1 @@
1
+ {"province": "shanxi", "province_name": "山西", "year": 2026, "track": "physics", "track_cn": "物理类", "source": "省考试院 / eol.cn (一分一段表全表)", "source_url": "https://gaokao.eol.cn/shan_xi/dongtai/202606/t20260625_2749364.shtml", "note": "山西 2026 3+1+2 物理类 全表(官方左右双块版式);顶档'695分以上'为合并段;count 由 cumulative(位次)反推", "count": 112, "rows": [{"score": 695, "count": 13, "cumulative": 13}, {"score": 694, "count": 1, "cumulative": 14}, {"score": 693, "count": 5, "cumulative": 19}, {"score": 692, "count": 3, "cumulative": 22}, {"score": 691, "count": 6, "cumulative": 28}, {"score": 690, "count": 5, "cumulative": 33}, {"score": 689, "count": 6, "cumulative": 39}, {"score": 688, "count": 8, "cumulative": 47}, {"score": 687, "count": 7, "cumulative": 54}, {"score": 686, "count": 18, "cumulative": 72}, {"score": 685, "count": 9, "cumulative": 81}, {"score": 684, "count": 14, "cumulative": 95}, {"score": 683, "count": 14, "cumulative": 109}, {"score": 682, "count": 16, "cumulative": 125}, {"score": 681, "count": 20, "cumulative": 145}, {"score": 680, "count": 22, "cumulative": 167}, {"score": 679, "count": 21, "cumulative": 188}, {"score": 678, "count": 17, "cumulative": 205}, {"score": 677, "count": 27, "cumulative": 232}, {"score": 676, "count": 34, "cumulative": 266}, {"score": 675, "count": 34, "cumulative": 300}, {"score": 674, "count": 33, "cumulative": 333}, {"score": 673, "count": 36, "cumulative": 369}, {"score": 672, "count": 36, "cumulative": 405}, {"score": 671, "count": 37, "cumulative": 442}, {"score": 670, "count": 40, "cumulative": 482}, {"score": 669, "count": 48, "cumulative": 530}, {"score": 668, "count": 41, "cumulative": 571}, {"score": 667, "count": 49, "cumulative": 620}, {"score": 666, "count": 49, "cumulative": 669}, {"score": 665, "count": 63, "cumulative": 732}, {"score": 664, "count": 54, "cumulative": 786}, {"score": 663, "count": 58, "cumulative": 844}, {"score": 662, "count": 61, "cumulative": 905}, {"score": 661, "count": 71, "cumulative": 976}, {"score": 660, "count": 61, "cumulative": 1037}, {"score": 659, "count": 72, "cumulative": 1109}, {"score": 658, "count": 86, "cumulative": 1195}, {"score": 657, "count": 69, "cumulative": 1264}, {"score": 656, "count": 77, "cumulative": 1341}, {"score": 655, "count": 89, "cumulative": 1430}, {"score": 654, "count": 96, "cumulative": 1526}, {"score": 653, "count": 84, "cumulative": 1610}, {"score": 652, "count": 96, "cumulative": 1706}, {"score": 651, "count": 89, "cumulative": 1795}, {"score": 650, "count": 109, "cumulative": 1904}, {"score": 649, "count": 109, "cumulative": 2013}, {"score": 648, "count": 149, "cumulative": 2162}, {"score": 647, "count": 132, "cumulative": 2294}, {"score": 646, "count": 132, "cumulative": 2426}, {"score": 645, "count": 132, "cumulative": 2558}, {"score": 644, "count": 154, "cumulative": 2712}, {"score": 643, "count": 143, "cumulative": 2855}, {"score": 642, "count": 167, "cumulative": 3022}, {"score": 641, "count": 153, "cumulative": 3175}, {"score": 640, "count": 157, "cumulative": 3332}, {"score": 547, "count": 36473, "cumulative": 39805}, {"score": 546, "count": 559, "cumulative": 40364}, {"score": 545, "count": 579, "cumulative": 40943}, {"score": 544, "count": 552, "cumulative": 41495}, {"score": 543, "count": 541, "cumulative": 42036}, {"score": 542, "count": 525, "cumulative": 42561}, {"score": 541, "count": 571, "cumulative": 43132}, {"score": 540, "count": 574, "cumulative": 43706}, {"score": 539, "count": 615, "cumulative": 44321}, {"score": 538, "count": 577, "cumulative": 44898}, {"score": 537, "count": 614, "cumulative": 45512}, {"score": 536, "count": 577, "cumulative": 46089}, {"score": 535, "count": 606, "cumulative": 46695}, {"score": 534, "count": 568, "cumulative": 47263}, {"score": 533, "count": 585, "cumulative": 47848}, {"score": 532, "count": 575, "cumulative": 48423}, {"score": 531, "count": 656, "cumulative": 49079}, {"score": 530, "count": 606, "cumulative": 49685}, {"score": 529, "count": 625, "cumulative": 50310}, {"score": 528, "count": 595, "cumulative": 50905}, {"score": 527, "count": 635, "cumulative": 51540}, {"score": 526, "count": 637, "cumulative": 52177}, {"score": 525, "count": 662, "cumulative": 52839}, {"score": 524, "count": 643, "cumulative": 53482}, {"score": 523, "count": 640, "cumulative": 54122}, {"score": 522, "count": 595, "cumulative": 54717}, {"score": 521, "count": 633, "cumulative": 55350}, {"score": 520, "count": 652, "cumulative": 56002}, {"score": 519, "count": 660, "cumulative": 56662}, {"score": 518, "count": 634, "cumulative": 57296}, {"score": 517, "count": 624, "cumulative": 57920}, {"score": 516, "count": 595, "cumulative": 58515}, {"score": 515, "count": 675, "cumulative": 59190}, {"score": 514, "count": 655, "cumulative": 59845}, {"score": 513, "count": 621, "cumulative": 60466}, {"score": 512, "count": 612, "cumulative": 61078}, {"score": 511, "count": 662, "cumulative": 61740}, {"score": 510, "count": 651, "cumulative": 62391}, {"score": 509, "count": 637, "cumulative": 63028}, {"score": 508, "count": 671, "cumulative": 63699}, {"score": 507, "count": 632, "cumulative": 64331}, {"score": 506, "count": 672, "cumulative": 65003}, {"score": 505, "count": 680, "cumulative": 65683}, {"score": 504, "count": 672, "cumulative": 66355}, {"score": 503, "count": 682, "cumulative": 67037}, {"score": 502, "count": 652, "cumulative": 67689}, {"score": 501, "count": 640, "cumulative": 68329}, {"score": 500, "count": 680, "cumulative": 69009}, {"score": 499, "count": 652, "cumulative": 69661}, {"score": 498, "count": 693, "cumulative": 70354}, {"score": 497, "count": 690, "cumulative": 71044}, {"score": 496, "count": 647, "cumulative": 71691}, {"score": 495, "count": 693, "cumulative": 72384}, {"score": 494, "count": 702, "cumulative": 73086}, {"score": 493, "count": 731, "cumulative": 73817}, {"score": 492, "count": 691, "cumulative": 74508}]}
@@ -0,0 +1 @@
1
+ {"province": "tianjin", "province_name": "天津", "year": 2026, "track": "combined", "track_cn": "综合改革", "source": "天津市教育招生考试院 (zhaokao.net PDF 文本层, 2026年普通高考总成绩分数档)", "source_url": "http://www.zhaokao.net/gkck/doc/003/000/115/00300011511_809a8ff0.pdf", "note": "天津 3+3 综合改革单轨。PDF 文本层(非OCR)解析,六列分块[分数,人数,累计],逐行 running-sum 全表校验通过(Σ人数==累计)。本科线 458→位次52753,特控线 547→位次24370,600→10077。表覆盖 680(顶段197人)→300(累计77488)。eol 镜像页 https://gaokao.eol.cn/tian_jin/dongtai/202606/t20260623_2748155.shtml 仅为图片版。", "count": 381, "checkpoints": {"600": 10077, "benke_458": 52753, "techaolu_547": 24370}, "rows": [{"score": 680, "count": 197, "cumulative": 197}, {"score": 679, "count": 32, "cumulative": 229}, {"score": 678, "count": 30, "cumulative": 259}, {"score": 677, "count": 25, "cumulative": 284}, {"score": 676, "count": 24, "cumulative": 308}, {"score": 675, "count": 21, "cumulative": 329}, {"score": 674, "count": 32, "cumulative": 361}, {"score": 673, "count": 25, "cumulative": 386}, {"score": 672, "count": 34, "cumulative": 420}, {"score": 671, "count": 41, "cumulative": 461}, {"score": 670, "count": 37, "cumulative": 498}, {"score": 669, "count": 37, "cumulative": 535}, {"score": 668, "count": 45, "cumulative": 580}, {"score": 667, "count": 38, "cumulative": 618}, {"score": 666, "count": 50, "cumulative": 668}, {"score": 665, "count": 44, "cumulative": 712}, {"score": 664, "count": 58, "cumulative": 770}, {"score": 663, "count": 56, "cumulative": 826}, {"score": 662, "count": 51, "cumulative": 877}, {"score": 661, "count": 66, "cumulative": 943}, {"score": 660, "count": 56, "cumulative": 999}, {"score": 659, "count": 83, "cumulative": 1082}, {"score": 658, "count": 62, "cumulative": 1144}, {"score": 657, "count": 72, "cumulative": 1216}, {"score": 656, "count": 87, "cumulative": 1303}, {"score": 655, "count": 73, "cumulative": 1376}, {"score": 654, "count": 83, "cumulative": 1459}, {"score": 653, "count": 86, "cumulative": 1545}, {"score": 652, "count": 88, "cumulative": 1633}, {"score": 651, "count": 79, "cumulative": 1712}, {"score": 650, "count": 110, "cumulative": 1822}, {"score": 649, "count": 84, "cumulative": 1906}, {"score": 648, "count": 105, "cumulative": 2011}, {"score": 647, "count": 93, "cumulative": 2104}, {"score": 646, "count": 110, "cumulative": 2214}, {"score": 645, "count": 102, "cumulative": 2316}, {"score": 644, "count": 116, "cumulative": 2432}, {"score": 643, "count": 117, "cumulative": 2549}, {"score": 642, "count": 135, "cumulative": 2684}, {"score": 641, "count": 109, "cumulative": 2793}, {"score": 640, "count": 112, "cumulative": 2905}, {"score": 639, "count": 110, "cumulative": 3015}, {"score": 638, "count": 115, "cumulative": 3130}, {"score": 637, "count": 117, "cumulative": 3247}, {"score": 636, "count": 128, "cumulative": 3375}, {"score": 635, "count": 137, "cumulative": 3512}, {"score": 634, "count": 117, "cumulative": 3629}, {"score": 633, "count": 151, "cumulative": 3780}, {"score": 632, "count": 125, "cumulative": 3905}, {"score": 631, "count": 134, "cumulative": 4039}, {"score": 630, "count": 179, "cumulative": 4218}, {"score": 629, "count": 171, "cumulative": 4389}, {"score": 628, "count": 161, "cumulative": 4550}, {"score": 627, "count": 167, "cumulative": 4717}, {"score": 626, "count": 155, "cumulative": 4872}, {"score": 625, "count": 166, "cumulative": 5038}, {"score": 624, "count": 185, "cumulative": 5223}, {"score": 623, "count": 168, "cumulative": 5391}, {"score": 622, "count": 183, "cumulative": 5574}, {"score": 621, "count": 162, "cumulative": 5736}, {"score": 620, "count": 204, "cumulative": 5940}, {"score": 619, "count": 181, "cumulative": 6121}, {"score": 618, "count": 188, "cumulative": 6309}, {"score": 617, "count": 162, "cumulative": 6471}, {"score": 616, "count": 227, "cumulative": 6698}, {"score": 615, "count": 189, "cumulative": 6887}, {"score": 614, "count": 225, "cumulative": 7112}, {"score": 613, "count": 170, "cumulative": 7282}, {"score": 612, "count": 222, "cumulative": 7504}, {"score": 611, "count": 191, "cumulative": 7695}, {"score": 610, "count": 191, "cumulative": 7886}, {"score": 609, "count": 195, "cumulative": 8081}, {"score": 608, "count": 194, "cumulative": 8275}, {"score": 607, "count": 217, "cumulative": 8492}, {"score": 606, "count": 210, "cumulative": 8702}, {"score": 605, "count": 203, "cumulative": 8905}, {"score": 604, "count": 247, "cumulative": 9152}, {"score": 603, "count": 233, "cumulative": 9385}, {"score": 602, "count": 236, "cumulative": 9621}, {"score": 601, "count": 230, "cumulative": 9851}, {"score": 600, "count": 226, "cumulative": 10077}, {"score": 599, "count": 243, "cumulative": 10320}, {"score": 598, "count": 215, "cumulative": 10535}, {"score": 597, "count": 235, "cumulative": 10770}, {"score": 596, "count": 212, "cumulative": 10982}, {"score": 595, "count": 231, "cumulative": 11213}, {"score": 594, "count": 205, "cumulative": 11418}, {"score": 593, "count": 277, "cumulative": 11695}, {"score": 592, "count": 272, "cumulative": 11967}, {"score": 591, "count": 251, "cumulative": 12218}, {"score": 590, "count": 231, "cumulative": 12449}, {"score": 589, "count": 261, "cumulative": 12710}, {"score": 588, "count": 242, "cumulative": 12952}, {"score": 587, "count": 257, "cumulative": 13209}, {"score": 586, "count": 276, "cumulative": 13485}, {"score": 585, "count": 276, "cumulative": 13761}, {"score": 584, "count": 261, "cumulative": 14022}, {"score": 583, "count": 296, "cumulative": 14318}, {"score": 582, "count": 244, "cumulative": 14562}, {"score": 581, "count": 260, "cumulative": 14822}, {"score": 580, "count": 261, "cumulative": 15083}, {"score": 579, "count": 273, "cumulative": 15356}, {"score": 578, "count": 283, "cumulative": 15639}, {"score": 577, "count": 240, "cumulative": 15879}, {"score": 576, "count": 299, "cumulative": 16178}, {"score": 575, "count": 274, "cumulative": 16452}, {"score": 574, "count": 276, "cumulative": 16728}, {"score": 573, "count": 261, "cumulative": 16989}, {"score": 572, "count": 278, "cumulative": 17267}, {"score": 571, "count": 261, "cumulative": 17528}, {"score": 570, "count": 286, "cumulative": 17814}, {"score": 569, "count": 271, "cumulative": 18085}, {"score": 568, "count": 259, "cumulative": 18344}, {"score": 567, "count": 285, "cumulative": 18629}, {"score": 566, "count": 282, "cumulative": 18911}, {"score": 565, "count": 282, "cumulative": 19193}, {"score": 564, "count": 303, "cumulative": 19496}, {"score": 563, "count": 262, "cumulative": 19758}, {"score": 562, "count": 282, "cumulative": 20040}, {"score": 561, "count": 271, "cumulative": 20311}, {"score": 560, "count": 268, "cumulative": 20579}, {"score": 559, "count": 280, "cumulative": 20859}, {"score": 558, "count": 278, "cumulative": 21137}, {"score": 557, "count": 306, "cumulative": 21443}, {"score": 556, "count": 298, "cumulative": 21741}, {"score": 555, "count": 292, "cumulative": 22033}, {"score": 554, "count": 272, "cumulative": 22305}, {"score": 553, "count": 316, "cumulative": 22621}, {"score": 552, "count": 276, "cumulative": 22897}, {"score": 551, "count": 288, "cumulative": 23185}, {"score": 550, "count": 306, "cumulative": 23491}, {"score": 549, "count": 277, "cumulative": 23768}, {"score": 548, "count": 315, "cumulative": 24083}, {"score": 547, "count": 287, "cumulative": 24370}, {"score": 546, "count": 276, "cumulative": 24646}, {"score": 545, "count": 306, "cumulative": 24952}, {"score": 544, "count": 307, "cumulative": 25259}, {"score": 543, "count": 315, "cumulative": 25574}, {"score": 542, "count": 315, "cumulative": 25889}, {"score": 541, "count": 309, "cumulative": 26198}, {"score": 540, "count": 304, "cumulative": 26502}, {"score": 539, "count": 306, "cumulative": 26808}, {"score": 538, "count": 306, "cumulative": 27114}, {"score": 537, "count": 304, "cumulative": 27418}, {"score": 536, "count": 295, "cumulative": 27713}, {"score": 535, "count": 294, "cumulative": 28007}, {"score": 534, "count": 324, "cumulative": 28331}, {"score": 533, "count": 301, "cumulative": 28632}, {"score": 532, "count": 309, "cumulative": 28941}, {"score": 531, "count": 296, "cumulative": 29237}, {"score": 530, "count": 325, "cumulative": 29562}, {"score": 529, "count": 300, "cumulative": 29862}, {"score": 528, "count": 332, "cumulative": 30194}, {"score": 527, "count": 313, "cumulative": 30507}, {"score": 526, "count": 319, "cumulative": 30826}, {"score": 525, "count": 283, "cumulative": 31109}, {"score": 524, "count": 335, "cumulative": 31444}, {"score": 523, "count": 328, "cumulative": 31772}, {"score": 522, "count": 334, "cumulative": 32106}, {"score": 521, "count": 310, "cumulative": 32416}, {"score": 520, "count": 302, "cumulative": 32718}, {"score": 519, "count": 308, "cumulative": 33026}, {"score": 518, "count": 319, "cumulative": 33345}, {"score": 517, "count": 320, "cumulative": 33665}, {"score": 516, "count": 307, "cumulative": 33972}, {"score": 515, "count": 337, "cumulative": 34309}, {"score": 514, "count": 332, "cumulative": 34641}, {"score": 513, "count": 361, "cumulative": 35002}, {"score": 512, "count": 322, "cumulative": 35324}, {"score": 511, "count": 306, "cumulative": 35630}, {"score": 510, "count": 306, "cumulative": 35936}, {"score": 509, "count": 320, "cumulative": 36256}, {"score": 508, "count": 338, "cumulative": 36594}, {"score": 507, "count": 341, "cumulative": 36935}, {"score": 506, "count": 314, "cumulative": 37249}, {"score": 505, "count": 307, "cumulative": 37556}, {"score": 504, "count": 313, "cumulative": 37869}, {"score": 503, "count": 316, "cumulative": 38185}, {"score": 502, "count": 343, "cumulative": 38528}, {"score": 501, "count": 348, "cumulative": 38876}, {"score": 500, "count": 356, "cumulative": 39232}, {"score": 499, "count": 305, "cumulative": 39537}, {"score": 498, "count": 340, "cumulative": 39877}, {"score": 497, "count": 319, "cumulative": 40196}, {"score": 496, "count": 347, "cumulative": 40543}, {"score": 495, "count": 338, "cumulative": 40881}, {"score": 494, "count": 337, "cumulative": 41218}, {"score": 493, "count": 301, "cumulative": 41519}, {"score": 492, "count": 336, "cumulative": 41855}, {"score": 491, "count": 344, "cumulative": 42199}, {"score": 490, "count": 326, "cumulative": 42525}, {"score": 489, "count": 317, "cumulative": 42842}, {"score": 488, "count": 314, "cumulative": 43156}, {"score": 487, "count": 348, "cumulative": 43504}, {"score": 486, "count": 345, "cumulative": 43849}, {"score": 485, "count": 306, "cumulative": 44155}, {"score": 484, "count": 372, "cumulative": 44527}, {"score": 483, "count": 312, "cumulative": 44839}, {"score": 482, "count": 347, "cumulative": 45186}, {"score": 481, "count": 307, "cumulative": 45493}, {"score": 480, "count": 336, "cumulative": 45829}, {"score": 479, "count": 310, "cumulative": 46139}, {"score": 478, "count": 276, "cumulative": 46415}, {"score": 477, "count": 304, "cumulative": 46719}, {"score": 476, "count": 337, "cumulative": 47056}, {"score": 475, "count": 326, "cumulative": 47382}, {"score": 474, "count": 335, "cumulative": 47717}, {"score": 473, "count": 320, "cumulative": 48037}, {"score": 472, "count": 324, "cumulative": 48361}, {"score": 471, "count": 293, "cumulative": 48654}, {"score": 470, "count": 312, "cumulative": 48966}, {"score": 469, "count": 301, "cumulative": 49267}, {"score": 468, "count": 290, "cumulative": 49557}, {"score": 467, "count": 311, "cumulative": 49868}, {"score": 466, "count": 334, "cumulative": 50202}, {"score": 465, "count": 309, "cumulative": 50511}, {"score": 464, "count": 329, "cumulative": 50840}, {"score": 463, "count": 312, "cumulative": 51152}, {"score": 462, "count": 326, "cumulative": 51478}, {"score": 461, "count": 333, "cumulative": 51811}, {"score": 460, "count": 308, "cumulative": 52119}, {"score": 459, "count": 303, "cumulative": 52422}, {"score": 458, "count": 331, "cumulative": 52753}, {"score": 457, "count": 313, "cumulative": 53066}, {"score": 456, "count": 299, "cumulative": 53365}, {"score": 455, "count": 307, "cumulative": 53672}, {"score": 454, "count": 248, "cumulative": 53920}, {"score": 453, "count": 281, "cumulative": 54201}, {"score": 452, "count": 291, "cumulative": 54492}, {"score": 451, "count": 313, "cumulative": 54805}, {"score": 450, "count": 303, "cumulative": 55108}, {"score": 449, "count": 284, "cumulative": 55392}, {"score": 448, "count": 270, "cumulative": 55662}, {"score": 447, "count": 269, "cumulative": 55931}, {"score": 446, "count": 318, "cumulative": 56249}, {"score": 445, "count": 253, "cumulative": 56502}, {"score": 444, "count": 279, "cumulative": 56781}, {"score": 443, "count": 266, "cumulative": 57047}, {"score": 442, "count": 299, "cumulative": 57346}, {"score": 441, "count": 286, "cumulative": 57632}, {"score": 440, "count": 315, "cumulative": 57947}, {"score": 439, "count": 296, "cumulative": 58243}, {"score": 438, "count": 257, "cumulative": 58500}, {"score": 437, "count": 269, "cumulative": 58769}, {"score": 436, "count": 296, "cumulative": 59065}, {"score": 435, "count": 243, "cumulative": 59308}, {"score": 434, "count": 253, "cumulative": 59561}, {"score": 433, "count": 271, "cumulative": 59832}, {"score": 432, "count": 262, "cumulative": 60094}, {"score": 431, "count": 256, "cumulative": 60350}, {"score": 430, "count": 247, "cumulative": 60597}, {"score": 429, "count": 244, "cumulative": 60841}, {"score": 428, "count": 288, "cumulative": 61129}, {"score": 427, "count": 248, "cumulative": 61377}, {"score": 426, "count": 239, "cumulative": 61616}, {"score": 425, "count": 265, "cumulative": 61881}, {"score": 424, "count": 230, "cumulative": 62111}, {"score": 423, "count": 255, "cumulative": 62366}, {"score": 422, "count": 256, "cumulative": 62622}, {"score": 421, "count": 258, "cumulative": 62880}, {"score": 420, "count": 216, "cumulative": 63096}, {"score": 419, "count": 225, "cumulative": 63321}, {"score": 418, "count": 225, "cumulative": 63546}, {"score": 417, "count": 233, "cumulative": 63779}, {"score": 416, "count": 193, "cumulative": 63972}, {"score": 415, "count": 251, "cumulative": 64223}, {"score": 414, "count": 219, "cumulative": 64442}, {"score": 413, "count": 216, "cumulative": 64658}, {"score": 412, "count": 196, "cumulative": 64854}, {"score": 411, "count": 210, "cumulative": 65064}, {"score": 410, "count": 187, "cumulative": 65251}, {"score": 409, "count": 241, "cumulative": 65492}, {"score": 408, "count": 221, "cumulative": 65713}, {"score": 407, "count": 198, "cumulative": 65911}, {"score": 406, "count": 198, "cumulative": 66109}, {"score": 405, "count": 195, "cumulative": 66304}, {"score": 404, "count": 229, "cumulative": 66533}, {"score": 403, "count": 179, "cumulative": 66712}, {"score": 402, "count": 200, "cumulative": 66912}, {"score": 401, "count": 209, "cumulative": 67121}, {"score": 400, "count": 179, "cumulative": 67300}, {"score": 399, "count": 187, "cumulative": 67487}, {"score": 398, "count": 182, "cumulative": 67669}, {"score": 397, "count": 199, "cumulative": 67868}, {"score": 396, "count": 168, "cumulative": 68036}, {"score": 395, "count": 203, "cumulative": 68239}, {"score": 394, "count": 187, "cumulative": 68426}, {"score": 393, "count": 176, "cumulative": 68602}, {"score": 392, "count": 185, "cumulative": 68787}, {"score": 391, "count": 173, "cumulative": 68960}, {"score": 390, "count": 145, "cumulative": 69105}, {"score": 389, "count": 175, "cumulative": 69280}, {"score": 388, "count": 165, "cumulative": 69445}, {"score": 387, "count": 168, "cumulative": 69613}, {"score": 386, "count": 174, "cumulative": 69787}, {"score": 385, "count": 178, "cumulative": 69965}, {"score": 384, "count": 146, "cumulative": 70111}, {"score": 383, "count": 147, "cumulative": 70258}, {"score": 382, "count": 149, "cumulative": 70407}, {"score": 381, "count": 141, "cumulative": 70548}, {"score": 380, "count": 166, "cumulative": 70714}, {"score": 379, "count": 156, "cumulative": 70870}, {"score": 378, "count": 128, "cumulative": 70998}, {"score": 377, "count": 136, "cumulative": 71134}, {"score": 376, "count": 155, "cumulative": 71289}, {"score": 375, "count": 135, "cumulative": 71424}, {"score": 374, "count": 124, "cumulative": 71548}, {"score": 373, "count": 130, "cumulative": 71678}, {"score": 372, "count": 135, "cumulative": 71813}, {"score": 371, "count": 116, "cumulative": 71929}, {"score": 370, "count": 142, "cumulative": 72071}, {"score": 369, "count": 140, "cumulative": 72211}, {"score": 368, "count": 120, "cumulative": 72331}, {"score": 367, "count": 122, "cumulative": 72453}, {"score": 366, "count": 121, "cumulative": 72574}, {"score": 365, "count": 136, "cumulative": 72710}, {"score": 364, "count": 104, "cumulative": 72814}, {"score": 363, "count": 120, "cumulative": 72934}, {"score": 362, "count": 107, "cumulative": 73041}, {"score": 361, "count": 117, "cumulative": 73158}, {"score": 360, "count": 114, "cumulative": 73272}, {"score": 359, "count": 127, "cumulative": 73399}, {"score": 358, "count": 91, "cumulative": 73490}, {"score": 357, "count": 99, "cumulative": 73589}, {"score": 356, "count": 107, "cumulative": 73696}, {"score": 355, "count": 111, "cumulative": 73807}, {"score": 354, "count": 98, "cumulative": 73905}, {"score": 353, "count": 106, "cumulative": 74011}, {"score": 352, "count": 99, "cumulative": 74110}, {"score": 351, "count": 85, "cumulative": 74195}, {"score": 350, "count": 83, "cumulative": 74278}, {"score": 349, "count": 106, "cumulative": 74384}, {"score": 348, "count": 85, "cumulative": 74469}, {"score": 347, "count": 92, "cumulative": 74561}, {"score": 346, "count": 92, "cumulative": 74653}, {"score": 345, "count": 79, "cumulative": 74732}, {"score": 344, "count": 86, "cumulative": 74818}, {"score": 343, "count": 75, "cumulative": 74893}, {"score": 342, "count": 70, "cumulative": 74963}, {"score": 341, "count": 88, "cumulative": 75051}, {"score": 340, "count": 78, "cumulative": 75129}, {"score": 339, "count": 78, "cumulative": 75207}, {"score": 338, "count": 75, "cumulative": 75282}, {"score": 337, "count": 72, "cumulative": 75354}, {"score": 336, "count": 65, "cumulative": 75419}, {"score": 335, "count": 85, "cumulative": 75504}, {"score": 334, "count": 65, "cumulative": 75569}, {"score": 333, "count": 69, "cumulative": 75638}, {"score": 332, "count": 72, "cumulative": 75710}, {"score": 331, "count": 72, "cumulative": 75782}, {"score": 330, "count": 60, "cumulative": 75842}, {"score": 329, "count": 72, "cumulative": 75914}, {"score": 328, "count": 63, "cumulative": 75977}, {"score": 327, "count": 63, "cumulative": 76040}, {"score": 326, "count": 68, "cumulative": 76108}, {"score": 325, "count": 57, "cumulative": 76165}, {"score": 324, "count": 68, "cumulative": 76233}, {"score": 323, "count": 69, "cumulative": 76302}, {"score": 322, "count": 51, "cumulative": 76353}, {"score": 321, "count": 65, "cumulative": 76418}, {"score": 320, "count": 49, "cumulative": 76467}, {"score": 319, "count": 62, "cumulative": 76529}, {"score": 318, "count": 55, "cumulative": 76584}, {"score": 317, "count": 50, "cumulative": 76634}, {"score": 316, "count": 56, "cumulative": 76690}, {"score": 315, "count": 59, "cumulative": 76749}, {"score": 314, "count": 53, "cumulative": 76802}, {"score": 313, "count": 64, "cumulative": 76866}, {"score": 312, "count": 52, "cumulative": 76918}, {"score": 311, "count": 56, "cumulative": 76974}, {"score": 310, "count": 56, "cumulative": 77030}, {"score": 309, "count": 52, "cumulative": 77082}, {"score": 308, "count": 36, "cumulative": 77118}, {"score": 307, "count": 49, "cumulative": 77167}, {"score": 306, "count": 40, "cumulative": 77207}, {"score": 305, "count": 48, "cumulative": 77255}, {"score": 304, "count": 40, "cumulative": 77295}, {"score": 303, "count": 47, "cumulative": 77342}, {"score": 302, "count": 55, "cumulative": 77397}, {"score": 301, "count": 43, "cumulative": 77440}, {"score": 300, "count": 48, "cumulative": 77488}]}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import { top } from "./top.js";
7
7
  import { isTty, formatRecommend, formatTop } from "./format.js";
8
8
  import { runMcpServer } from "./mcp.js";
9
9
  import { runHttpServer } from "./http-server.js";
10
- import { loadRankTable, listRankTables, scoreToRank, rankToScore, inferDefaultTrack } from "./rank-table.js";
10
+ import { loadRankTable, listRankTables, scoreToRank, rankToScore, inferDefaultTrack, deriveScoreFromRank } from "./rank-table.js";
11
11
  import { decodeXuanke } from "./xuanke.js";
12
12
  import { loadMemory, setPrefs, addWatched, logEvent, clearMemory, memoryPath } from "./memory.js";
13
13
  import { runSelftest } from "./selftest.js";
@@ -142,27 +142,31 @@ Usage:
142
142
  gaokao-pro scores <schoolId> --province <name|id>
143
143
  Historical min scores for a (school, province) pair across all years/tracks.
144
144
 
145
- gaokao-pro recommend --score <n> --province <name|id> --subjects <list>
145
+ gaokao-pro recommend (--score <n> | --rank <n>) --province <name|id> --subjects <list>
146
146
  [--schools <id1,id2,...>] [--985] [--211] [--dual-class]
147
147
  [--level <本科|专科>] [--type <综合类|理工类|...>]
148
- [--belong <教育部|工信部|...>] [--limit <n>] [--rank <n>]
148
+ [--belong <教育部|工信部|...>] [--limit <n>]
149
149
  [--explain] [--format table|json]
150
150
  Bucket schools into 冲 / 稳 / 保 based on the user's score vs each
151
151
  school's most-recent matching-track minimum. Without --schools, scans
152
152
  the full index (~2400 schools). All evaluation is local — no network.
153
+ Pass --rank <全省位次> instead of --score if the student only knows their
154
+ 位次 (成绩单/查询系统给的) — we convert it via the newest 一分一段 table.
153
155
  e.g. gaokao-pro recommend --score 660 --province henan \\
154
156
  --subjects 物理,化学,生物 --985 --limit 10 --explain
157
+ gaokao-pro recommend --rank 12000 --province henan --subjects 物理,化学,生物
155
158
 
156
- gaokao-pro top --score <n> --province <name|id> --subjects <list>
159
+ gaokao-pro top (--score <n> | --rank <n>) --province <name|id> --subjects <list>
157
160
  [--985] [--211] [--dual-class] [--limit <n>]
158
161
  [--enrich --year <year>] [--format table|json]
159
162
  Best schools within reach of this score in this province, ranked by
160
- historical baseline desc. Like recommend, but flat top-N list.
163
+ historical baseline desc. Like recommend, but flat top-N list. Accepts
164
+ --rank <全省位次> in place of --score (converted via 一分一段).
161
165
  --enrich --year <y> attaches each school's real 录取 min/最低位次 by
162
166
  fetching them in ONE parallel pass (implies JSON) — the fast way to get a
163
167
  ranked candidate list WITH real admission data in a single call.
164
168
  e.g. gaokao-pro top --score 650 --province henan --subjects 物理 --limit 15
165
- gaokao-pro top --score 650 --province henan --subjects 物理 --enrich --year 2024
169
+ gaokao-pro top --rank 8000 --province henan --subjects 物理 --limit 15
166
170
 
167
171
  gaokao-pro actual <schoolId> --year <year> --province <name|id>
168
172
  Per-major actual admission outcomes (vs forward-looking 'plan'):
@@ -966,9 +970,6 @@ const VERBS = {
966
970
  },
967
971
  async recommend(args) {
968
972
  const { flags } = parseFlags(args);
969
- const score = Number(flags.score);
970
- if (!Number.isFinite(score))
971
- throw new Error("--score <n> is required");
972
973
  if (typeof flags.province !== "string")
973
974
  throw new Error("--province <name|id> is required");
974
975
  const provinceId = resolveProvince(flags.province);
@@ -977,10 +978,31 @@ const VERBS = {
977
978
  if (typeof flags.subjects !== "string")
978
979
  throw new Error("--subjects <list> is required (comma-separated, e.g. 物理,化学,生物)");
979
980
  const subjects = validateSubjects(flags.subjects.split(/[,,、]/).map((s) => s.trim()));
981
+ // Accept either --score, or --rank alone: a student who only knows their 全省位次
982
+ // gets an equivalent score from the newest 一分一段 table for this province+track.
983
+ const rank = flags.rank !== undefined ? Number(flags.rank) : undefined;
984
+ let score;
985
+ let rankNote;
986
+ if (flags.score !== undefined) {
987
+ score = Number(flags.score);
988
+ if (!Number.isFinite(score))
989
+ throw new Error(`--score must be a number, got: ${String(flags.score)}`);
990
+ }
991
+ else if (rank !== undefined) {
992
+ if (!Number.isFinite(rank) || rank < 1)
993
+ throw new Error(`--rank must be a positive number, got: ${String(flags.rank)}`);
994
+ const d = deriveScoreFromRank(provinceId, subjects, rank);
995
+ if (!d)
996
+ throw new Error(`位次 ${flags.rank} 无法换算成分数:缺 ${PROVINCES[provinceId].name} 一分一段表,或位次超出表范围。请改用 --score,或先跑 \`gaokao-pro rank-tables\` 看有哪些表。`);
997
+ score = d.score;
998
+ rankNote = `位次 ${rank} → 约 ${d.score} 分(按 ${PROVINCES[provinceId].name} ${d.year} ${d.track} 一分一段换算;冲稳保按此分数估算)`;
999
+ }
1000
+ else {
1001
+ throw new Error("--score <n> 或 --rank <n> 必填其一");
1002
+ }
980
1003
  const schoolIds = typeof flags.schools === "string"
981
1004
  ? flags.schools.split(",").map((s) => s.trim()).filter(Boolean)
982
1005
  : undefined;
983
- const rank = flags.rank !== undefined ? Number(flags.rank) : undefined;
984
1006
  const limit = parseLimit(flags.limit, undefined);
985
1007
  const filter = {
986
1008
  ...buildLabelFilter(flags),
@@ -990,17 +1012,16 @@ const VERBS = {
990
1012
  };
991
1013
  const out = recommend({ score, provinceId, subjects, rank, schoolIds, filter, limit });
992
1014
  if (shouldTable(flags)) {
1015
+ if (rankNote)
1016
+ process.stdout.write(rankNote + "\n");
993
1017
  process.stdout.write(formatRecommend(out, { explain: flags.explain === true }) + "\n");
994
1018
  }
995
1019
  else {
996
- printJson({ ok: true, ...out });
1020
+ printJson({ ok: true, ...(rankNote ? { rankNote } : {}), ...out });
997
1021
  }
998
1022
  },
999
1023
  async top(args) {
1000
1024
  const { flags } = parseFlags(args);
1001
- const score = Number(flags.score);
1002
- if (!Number.isFinite(score))
1003
- throw new Error("--score <n> is required");
1004
1025
  if (typeof flags.province !== "string")
1005
1026
  throw new Error("--province <name|id> is required");
1006
1027
  const provinceId = resolveProvince(flags.province);
@@ -1009,6 +1030,28 @@ const VERBS = {
1009
1030
  if (typeof flags.subjects !== "string")
1010
1031
  throw new Error("--subjects <list> is required");
1011
1032
  const subjects = validateSubjects(flags.subjects.split(/[,,、]/).map((s) => s.trim()));
1033
+ // Accept either --score, or --rank alone (student knows their 全省位次):
1034
+ // derive an equivalent score from the newest 一分一段 table for province+track.
1035
+ let score;
1036
+ let rankNote;
1037
+ if (flags.score !== undefined) {
1038
+ score = Number(flags.score);
1039
+ if (!Number.isFinite(score))
1040
+ throw new Error(`--score must be a number, got: ${String(flags.score)}`);
1041
+ }
1042
+ else if (flags.rank !== undefined) {
1043
+ const rank = Number(flags.rank);
1044
+ if (!Number.isFinite(rank) || rank < 1)
1045
+ throw new Error(`--rank must be a positive number, got: ${String(flags.rank)}`);
1046
+ const d = deriveScoreFromRank(provinceId, subjects, rank);
1047
+ if (!d)
1048
+ throw new Error(`位次 ${flags.rank} 无法换算成分数:缺 ${PROVINCES[provinceId].name} 一分一段表,或位次超出表范围。请改用 --score。`);
1049
+ score = d.score;
1050
+ rankNote = `位次 ${rank} → 约 ${d.score} 分(按 ${PROVINCES[provinceId].name} ${d.year} ${d.track} 一分一段换算)`;
1051
+ }
1052
+ else {
1053
+ throw new Error("--score <n> 或 --rank <n> 必填其一");
1054
+ }
1012
1055
  const limit = parseLimit(flags.limit, 20);
1013
1056
  const filter = buildLabelFilter(flags);
1014
1057
  const out = top({ score, provinceId, subjects, limit, filter });
@@ -1048,7 +1091,7 @@ const VERBS = {
1048
1091
  tags: [r.is985 ? "985" : "", r.is211 && !r.is985 ? "211" : "", r.dualClass === "双一流" && !r.is985 && !r.is211 ? "双一流" : ""].filter(Boolean).join(" "),
1049
1092
  belong: r.belong
1050
1093
  }));
1051
- const header = `gaokao-pro top score=${score} province=${PROVINCES[provinceId].name} subjects=${subjects.join("/")} limit=${limit}\n`;
1094
+ const header = (rankNote ? rankNote + "\n" : "") + `gaokao-pro top score=${score} province=${PROVINCES[provinceId].name} subjects=${subjects.join("/")} limit=${limit}\n`;
1052
1095
  const slipFooter = (() => {
1053
1096
  try {
1054
1097
  const info = provinceTiaojiInfo(PROVINCES[provinceId].name);
@@ -1069,7 +1112,7 @@ const VERBS = {
1069
1112
  process.stdout.write(header + formatTop(rows) + slipFooter + "\n");
1070
1113
  }
1071
1114
  else {
1072
- printJson({ ok: true, enriched: enrich, ...out });
1115
+ printJson({ ok: true, enriched: enrich, ...(rankNote ? { rankNote } : {}), ...out });
1073
1116
  }
1074
1117
  },
1075
1118
  async actual(args) {
@@ -36,3 +36,22 @@ export declare function rankToScore(table: RankTable, rank: number): number | nu
36
36
  * table just like the other 文/理 provinces. See inferTrack() in recommend.ts.
37
37
  */
38
38
  export declare function inferDefaultTrack(provinceId: ProvinceId): string;
39
+ /**
40
+ * Resolve the rank-table track key from a province + the student's subjects.
41
+ * 3+3 → "combined"; 3+1+2 → "physics"/"history" by subject; 老高考 →
42
+ * "science"/"liberal". Falls back to inferDefaultTrack when subjects are silent.
43
+ */
44
+ export declare function resolveRankTrack(provinceId: ProvinceId, subjects: string[]): string;
45
+ /** Newest year for which we hold a rank table for (province, track), or null. */
46
+ export declare function newestRankTableYear(provinceId: ProvinceId, track: string): number | null;
47
+ /**
48
+ * Derive an equivalent 分数 from a student-supplied 全省位次 (rank), using the
49
+ * newest available 一分一段 table for (province, track inferred from subjects).
50
+ * Lets a student who only knows their 位次 still run recommend/top. Returns null
51
+ * when we have no table for that province or the rank is out of the table's range.
52
+ */
53
+ export declare function deriveScoreFromRank(provinceId: ProvinceId, subjects: string[], rank: number): {
54
+ score: number;
55
+ year: number;
56
+ track: string;
57
+ } | null;
@@ -79,3 +79,44 @@ export function inferDefaultTrack(provinceId) {
79
79
  return "physics";
80
80
  return "science"; // old-reform 文/理 default to 理 (science) bucket
81
81
  }
82
+ /**
83
+ * Resolve the rank-table track key from a province + the student's subjects.
84
+ * 3+3 → "combined"; 3+1+2 → "physics"/"history" by subject; 老高考 →
85
+ * "science"/"liberal". Falls back to inferDefaultTrack when subjects are silent.
86
+ */
87
+ export function resolveRankTrack(provinceId, subjects) {
88
+ const reform = PROVINCES[provinceId].reform;
89
+ if (reform === "3+3")
90
+ return "combined";
91
+ const has = (k) => subjects.some((s) => s.includes(k));
92
+ if (reform === "3+1+2")
93
+ return has("物理") ? "physics" : has("历史") ? "history" : inferDefaultTrack(provinceId);
94
+ return has("物理") || has("理") ? "science" : has("历史") || has("文") ? "liberal" : inferDefaultTrack(provinceId);
95
+ }
96
+ /** Newest year for which we hold a rank table for (province, track), or null. */
97
+ export function newestRankTableYear(provinceId, track) {
98
+ const pin = pinyinFor(provinceId);
99
+ const years = listRankTables()
100
+ .filter((t) => t.province === pin && t.track === track)
101
+ .map((t) => t.year);
102
+ return years.length ? Math.max(...years) : null;
103
+ }
104
+ /**
105
+ * Derive an equivalent 分数 from a student-supplied 全省位次 (rank), using the
106
+ * newest available 一分一段 table for (province, track inferred from subjects).
107
+ * Lets a student who only knows their 位次 still run recommend/top. Returns null
108
+ * when we have no table for that province or the rank is out of the table's range.
109
+ */
110
+ export function deriveScoreFromRank(provinceId, subjects, rank) {
111
+ const track = resolveRankTrack(provinceId, subjects);
112
+ const year = newestRankTableYear(provinceId, track);
113
+ if (year === null)
114
+ return null;
115
+ const table = loadRankTable(provinceId, year, track);
116
+ if (!table)
117
+ return null;
118
+ const score = rankToScore(table, rank);
119
+ if (score === null)
120
+ return null;
121
+ return { score, year, track };
122
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaokao-pro",
3
- "version": "0.3.19",
3
+ "version": "0.3.21",
4
4
  "description": "中国高考志愿规划 CLI · 用 Claude Code / Codex / Cursor 帮你查招生数据、出冲稳保。",
5
5
  "type": "module",
6
6
  "bin": {