diff --git a/S2OJ/1808/1808.cpp b/S2OJ/1808/1808.cpp new file mode 100644 index 00000000..54e59f27 --- /dev/null +++ b/S2OJ/1808/1808.cpp @@ -0,0 +1,59 @@ +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int SIZE = 1000000; + +const int f[]{1, 376414, 832548, 1288829, 1744957, 2196801, 2647717, 3090921, 3526441, 3951373, 4366881, 4823016, 5304767, 5797145, 6290673, 6782005, 7272531, 7758911, 8238397, 8710537, 9182259, 9638540, 10130919, 10610576, 11103530, 11590746, 12080514, 12565095, 13045217, 13523104, 13996048, 14452176, 14945704, 15438659, 15913606, 16403908, 16892728, 17371944, 17858308, 18339126, 18810720, 19262564, 19753896, 20241112, 20731415, 21199400, 21684698, 22170474, 22655526, 23128983, 23601311, 24052227, 24542753, 25032521, 25521341, 26006640, 26480513, 26967739, 27450345, 27929455, 28401297, 28844501, 29330881, 29815462, 30294678, 30780454, 31267681, 31727884, 32207446, 32681532, 33151142, 33586662, 34066148, 34546270, 35032634, 35517686, 36000292, 36479855, 36928876, 37398606, 37865238, 38290170, 38762310, 39240197, 39721015, 40194472, 40673582, 41147668, 41617399, 42050820, 42514128, 42929636, 43401358, 43874302, 44345896, 44818224, 45290066, 45759676, 46226308, 46689617, 47111408, 47567543, 48049294, 48541672, 49035200, 49526532, 50017058, 50503438, 50982924, 51455064, 51926787, 52408538, 52900917, 53398018, 53897102, 54395977, 54894265, 55390377, 55882155, 56370125, 56858337, 57350716, 57847817, 58346902, 58846683, 59346651, 59846495, 60345547, 60842737, 61337763, 61832644, 62326172, 62825257, 63325038, 63822619, 64321882, 64821478, 65319368, 65818160, 66315615, 66811193, 67302525, 67801400, 68301369, 68800632, 69295187, 69792676, 70292150, 70790950, 71286704, 71781714, 72272240, 72770528, 73270372, 73769969, 74267458, 74763403, 75261352, 75759528, 76256606, 76751556, 77237936, 77734048, 78233100, 78730990, 79230465, 79728414, 80220835, 80714564, 81209374, 81704150, 82183636, 82675414, 83172604, 83671396, 84170196, 84668373, 85162102, 85646751, 86134012, 86626602, 87098742, 87586712, 88081738, 88579193, 89074947, 89572025, 90066836, 90554097, 91029272, 91513943, 91985665, 92473877, 92968758, 93464336, 93959346, 94454296, 94949072, 95441663, 95926334, 96400456, 96856737, 97349116, 97828773, 98321727, 98808943, 99298711, 99783292, 100263414, 100741301, 101214245, 101706624, 102203725, 102702810, 103202591, 103702559, 104202403, 104701455, 105198645, 105693671, 106188553, 106668210, 107167294, 107654510, 108153409, 108643572, 109140448, 109631937, 110124935, 110615087, 111104171, 111597126, 112096907, 112595805, 113093028, 113592811, 114091416, 114589182, 115087419, 115585177, 116080739, 116567955, 117067924, 117558087, 118057869, 118549358, 119048443, 119540444, 120037758, 120529914, 121025142, 121514910, 122014754, 122511631, 123010236, 123509320, 124005152, 124504321, 124999108, 125496724, 125991519, 126476100, 126975152, 127466641, 127964408, 128456409, 128955577, 129444362, 129941989, 130432182, 130927550, 131407672, 131904862, 132397860, 132896097, 133393412, 133888199, 134385825, 134870791, 135365762, 135853349, 136331236, 136826262, 137316414, 137814172, 138306328, 138803945, 139294138, 139789108, 140268614, 140761870, 141234814, 141729695, 142218779, 142714341, 143209569, 143704364, 144199733, 144687320, 145180576, 145654893, 146111021, 146604549, 147097504, 147572451, 148062753, 148551573, 149030789, 149517153, 149997971, 150469565, 150963093, 151462178, 151961959, 152459540, 152958803, 153458399, 153956289, 154455081, 154952536, 155448114, 155941069, 156440850, 156939748, 157436971, 157936754, 158435359, 158933125, 159431362, 159929120, 160424683, 160899630, 161397210, 161894433, 162373649, 162870480, 163366197, 163847036, 164342308, 164834857, 165316243, 165806546, 166305809, 166805591, 167302422, 167797534, 168296440, 168794207, 169291182, 169787228, 170282584, 170771404, 171271001, 171769606, 172265322, 172764228, 173259686, 173756940, 174255103, 174749456, 175244788, 175724004, 176221894, 176719661, 177200500, 177698266, 178195520, 178676906, 179174054, 179669963, 180151504, 180637868, 181136660, 181634897, 182130170, 182627145, 183125307, 183622455, 184112943, 184610047, 185104839, 185585657, 186083112, 186580870, 187073419, 187569466, 188063819, 188559727, 189056831, 189540681, 190034892, 190506486, 191002064, 191497626, 191979012, 192474368, 192969701, 193451242, 193946034, 194440245, 194913069, 195364913, 195856245, 196343461, 196833764, 197301749, 197787047, 198272823, 198757875, 199231332, 199703660, 200194992, 200693867, 201193836, 201693099, 202187654, 202685143, 203184617, 203683417, 204179171, 204674181, 205161397, 205661366, 206151529, 206651311, 207142800, 207641885, 208133886, 208631200, 209123356, 209618584, 210108887, 210608150, 211107932, 211604763, 212099875, 212598781, 213096548, 213593523, 214089569, 214584926, 215052911, 215547465, 216038954, 216534066, 217007523, 217499719, 217990902, 218484411, 218959906, 219446728, 219932027, 220429516, 220928600, 221427506, 221919702, 222413232, 222911994, 223409873, 223904584, 224393575, 224879351, 225378826, 225870827, 226368593, 226859776, 227358538, 227847478, 228346120, 228838090, 229333644, 229818696, 230317496, 230814811, 231311786, 231805294, 232303173, 232801815, 233291626, 233787284, 234281778, 234755235, 235250989, 235743145, 236239192, 236714687, 237209397, 237701367, 238197025, 238673285, 239165609, 239637937, 240132947, 240628175, 241123531, 241610354, 242099345, 242594899, 243089393, 243581717, 244056063, 244506979, 244997505, 245487273, 245976093, 246461392, 246935265, 247422491, 247905097, 248384207, 248856049, 249346575, 249844863, 250344707, 250844304, 251341793, 251837738, 252335687, 252833863, 253330941, 253825891, 254315659, 254815503, 255312380, 255810985, 256310069, 256805901, 257305070, 257799857, 258297473, 258792268, 259281088, 259780685, 260279290, 260775006, 261273912, 261769370, 262266624, 262764787, 263259140, 263754472, 264239771, 264737260, 265236344, 265735250, 266227446, 266720976, 267219738, 267717617, 268212328, 268701320, 269175193, 269671137, 270166969, 270662427, 271155957, 271637395, 272132981, 272626657, 273118402, 273606214, 274093441, 274591390, 275090558, 275587812, 276086574, 276582160, 277074754, 277572088, 278069042, 278564273, 279046879, 279545056, 280039843, 280538005, 281035884, 281529560, 282026894, 282513144, 283009665, 283502663, 283981773, 284478851, 284976468, 285470821, 285965531, 286457276, 286954230, 287450751, 287934209, 288427697, 288899539, 289394489, 289889284, 290384617, 290873608, 291361420, 291856651, 292349649, 292843137, 293317367, 293760571, 294246951, 294731532, 295210748, 295696524, 296183751, 296643954, 297123516, 297597602, 298067212, 298553592, 299049704, 299548756, 300046646, 300546121, 301044070, 301536491, 302030220, 302525030, 303019806, 303504387, 304003439, 304494928, 304992695, 305484696, 305983864, 306472649, 306970276, 307460469, 307955837, 308435053, 308932943, 309430710, 309911549, 310409315, 310906569, 311387955, 311885103, 312381012, 312862553, 313348329, 313847804, 314339805, 314837571, 315328754, 315827516, 316316456, 316815098, 317307068, 317802622, 318289849, 318787798, 319286966, 319784220, 320282982, 320778568, 321271162, 321768496, 322265450, 322760682, 323220885, 323713305, 324202090, 324683476, 325172416, 325665010, 326128509, 326618473, 327104746, 327585454, 328065017, 328558746, 329056372, 329553520, 330052162, 330549496, 331039460, 331524706, 332017240, 332510935, 332985021, 333479832, 333970025, 334465933, 334957903, 335454857, 335941130, 336433664, 336912904, 337405294, 337874904, 338369680, 338865049, 339346590, 339842144, 340337375, 340818083, 341311778, 341804168, 342276695, 342712215, 343191701, 343671823, 344158187, 344643239, 345125845, 345605408, 346054429, 346524159, 346990791, 347470277, 347962055, 348459245, 348958037, 349456837, 349955014, 350448743, 350933392, 351420653, 351913243, 352393365, 352890555, 353383553, 353881790, 354379105, 354873892, 355371518, 355856484, 356351455, 356839042, 357325406, 357824198, 358322435, 358817708, 359314683, 359812845, 360309993, 360800481, 361297585, 361792377, 362277429, 362776229, 363273544, 363770519, 364264027, 364761906, 365260548, 365750359, 366246017, 366740511, 367223117, 367721294, 368216081, 368714243, 369212122, 369705798, 370203132, 370689382, 371185903, 371678901, 372158464, 372652193, 373149819, 373646967, 374145609, 374642943, 375132907, 375618153, 376110687, 376604383, 377053404, 377538052, 378023018, 378513506, 379003317, 379489567, 379974813, 380427197, 380908306, 381388632, 381858363, 382345624, 382840594, 383337698, 383833356, 384329877, 384822411, 385303520, 385778158, 386266144, 386732776, 387225367, 387712954, 388207746, 388702240, 389195238, 389688933, 390169259, 390657245, 391130375, 391555307, 392027447, 392505334, 392986152, 393459609, 393938719, 394412805, 394882536, 395315957, 395779265, 396251405, 396739375, 397234401, 397731856, 398227610, 398724688, 399219499, 399706760, 400181935, 400666606, 401144493, 401639519, 402129671, 402627429, 403119585, 403617202, 404107395, 404602365, 405081871, 405575127, 406055945, 406553400, 407051158, 407543707, 408039754, 408534107, 409030015, 409527119, 410010969, 410505180, 410978637, 411474391, 411966547, 412462594, 412938089, 413432799, 413924769, 414420427, 414896687, 415389011, 415868121, 416365199, 416862816, 417357169, 417851879, 418343624, 418840578, 419337099, 419820557, 420314045, 420788131, 421282942, 421773135, 422269043, 422761013, 423257967, 423744240, 424236774, 424716014, 425208404, 425678135, 426165396, 426660366, 427157470, 427653128, 428149649, 428642183, 429123292, 429597930, 430085917, 430519338, 430994512, 431474018, 431957868, 432434128, 432917586, 433396826, 433871464, 434306087, 434779291, 435242600, 435727271, 436220527, 436714738, 437207062, 437700550, 438192940, 438680926, 439154130, 439626260, 440041768, 440513490, 440986434, 441458028, 441930356, 442402198, 442871808, 443338440, 443801749, 444223540, 444695262, 445183474, 445678355, 446173933, 446668943, 447163893, 447658669, 448151260, 448635931, 449110053, 449582997, 450077878, 450566962, 451062524, 451557752, 452052547, 452547916, 453035503, 453528759, 454003076, 454474670, 454970248, 455465810, 455947196, 456442552, 456937885, 457419426, 457914218, 458408429, 458881253, 459353581, 459848591, 460343819, 460839175, 461325998, 461814989, 462310543, 462805037, 463297361, 463771707, 464243549, 464738499, 465233294, 465728627, 466217618, 466705430, 467200661, 467693659, 468187147, 468661377, 469130987, 469625763, 470121132, 470602673, 471098227, 471593458, 472074166, 472567861, 473060251, 473532778, 473999410, 474492001, 474979588, 475474380, 475968874, 476461872, 476955567, 477435893, 477923879, 478397009, 478860318, 479344989, 479838245, 480332456, 480824780, 481318268, 481810658, 482298644, 482771848, 483243979, 483665770, 484139892, 484614209, 485087033, 485561379, 486035609, 486508136, 486981266, 487453396, 487875964}; + +bool check(int x) { + int s = 0; + std::bitset<128> f; + + f.set(0); + + while (x) { + int k = x % 10; + + f |= f << k; + s += k; + x /= 10; + } + + return s % 2 == 0 && f[s >> 1]; +} + +int solve(int x) { + int res = f[x / SIZE]; + + for (int i = x / SIZE * SIZE + 1; i <= x; i++) { + if (check(i)) res++; + } + + return res; +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + // for (int i = 0, cnt = 0; i <= 1e9; i++) { + // if (check(i)) cnt++; + + // if (i % SIZE == 0) { + // cout << cnt << ", "; + // std::cerr << i << endl; + // } + // } + + int l, r; + + cin >> l >> r; + + cout << solve(r) - solve(l - 1) << endl; + + return 0; +} diff --git a/S2OJ/1808/data/count1.in b/S2OJ/1808/data/count1.in new file mode 100644 index 00000000..6ca39eb0 --- /dev/null +++ b/S2OJ/1808/data/count1.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3ae8e12d0891aa8d4363f1c26baa0226806566f16fce94852d176e7976cfa8c +size 4 diff --git a/S2OJ/1808/data/count1.out b/S2OJ/1808/data/count1.out new file mode 100644 index 00000000..804fcc90 --- /dev/null +++ b/S2OJ/1808/data/count1.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa +size 2 diff --git a/S2OJ/1808/data/count10.in b/S2OJ/1808/data/count10.in new file mode 100644 index 00000000..e9098e83 --- /dev/null +++ b/S2OJ/1808/data/count10.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b96e4805f535494b192b0f915155aefdef790a1f93795280e160763e32a686a0 +size 19 diff --git a/S2OJ/1808/data/count10.out b/S2OJ/1808/data/count10.out new file mode 100644 index 00000000..78516405 --- /dev/null +++ b/S2OJ/1808/data/count10.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:534cf65486a7a86282d0d1216a2849929fa45ea701285c2654edcd1e71d9e258 +size 10 diff --git a/S2OJ/1808/data/count2.in b/S2OJ/1808/data/count2.in new file mode 100644 index 00000000..aae13710 --- /dev/null +++ b/S2OJ/1808/data/count2.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0544ff0fb2f1e7faf26adf5c00923f75c5df082f7a8511075392c082ed48f691 +size 8 diff --git a/S2OJ/1808/data/count2.out b/S2OJ/1808/data/count2.out new file mode 100644 index 00000000..5d0f46a3 --- /dev/null +++ b/S2OJ/1808/data/count2.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e00e6031fc5e7ef95c526573343419859e112cebd550f10e2089bf393f5ed2bd +size 4 diff --git a/S2OJ/1808/data/count3.in b/S2OJ/1808/data/count3.in new file mode 100644 index 00000000..59a266f7 --- /dev/null +++ b/S2OJ/1808/data/count3.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:365c0d9efae2f8cb30b34cdbf5fab9a34f0072672db1f1b23528837f7336ad86 +size 8 diff --git a/S2OJ/1808/data/count3.out b/S2OJ/1808/data/count3.out new file mode 100644 index 00000000..8da2bb0d --- /dev/null +++ b/S2OJ/1808/data/count3.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4ccd05b3271c386ee55d9876c7450012a3b361e5065c09dc22075e38b3cc35c +size 3 diff --git a/S2OJ/1808/data/count4.in b/S2OJ/1808/data/count4.in new file mode 100644 index 00000000..8d1ceaa7 --- /dev/null +++ b/S2OJ/1808/data/count4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2771869505b12f66a2ac9c1a4d94a1499bc3907a97607d43c5c951d759ceacb +size 16 diff --git a/S2OJ/1808/data/count4.out b/S2OJ/1808/data/count4.out new file mode 100644 index 00000000..32e3363b --- /dev/null +++ b/S2OJ/1808/data/count4.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97756c3aaccfe809ea4320e5f0170ca0f442fa0cc05f96b1b8067262c9d29f83 +size 8 diff --git a/S2OJ/1808/data/count5.in b/S2OJ/1808/data/count5.in new file mode 100644 index 00000000..29bfd412 --- /dev/null +++ b/S2OJ/1808/data/count5.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3913f9edb365be9cdc3f5478b31f2763939cd9582a6b7c010229465200d93f9a +size 15 diff --git a/S2OJ/1808/data/count5.out b/S2OJ/1808/data/count5.out new file mode 100644 index 00000000..3e13b3e2 --- /dev/null +++ b/S2OJ/1808/data/count5.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3dab9dba253adbf222f819961d104eb85cafddbdd3b25cfe2988a98c5e4f928 +size 8 diff --git a/S2OJ/1808/data/count6.in b/S2OJ/1808/data/count6.in new file mode 100644 index 00000000..2063a694 --- /dev/null +++ b/S2OJ/1808/data/count6.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d00d41308cc2b2ff9b5f23cd2d2b9e9b01906edec65c428ecdab0c73bc0590 +size 20 diff --git a/S2OJ/1808/data/count6.out b/S2OJ/1808/data/count6.out new file mode 100644 index 00000000..9ec335d1 --- /dev/null +++ b/S2OJ/1808/data/count6.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e47ea6607d7d2bb9c45d9360c0d87b76033cdb9f8d218e5f6f46b526454559a4 +size 9 diff --git a/S2OJ/1808/data/count7.in b/S2OJ/1808/data/count7.in new file mode 100644 index 00000000..2063a694 --- /dev/null +++ b/S2OJ/1808/data/count7.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d00d41308cc2b2ff9b5f23cd2d2b9e9b01906edec65c428ecdab0c73bc0590 +size 20 diff --git a/S2OJ/1808/data/count7.out b/S2OJ/1808/data/count7.out new file mode 100644 index 00000000..9ec335d1 --- /dev/null +++ b/S2OJ/1808/data/count7.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e47ea6607d7d2bb9c45d9360c0d87b76033cdb9f8d218e5f6f46b526454559a4 +size 9 diff --git a/S2OJ/1808/data/count8.in b/S2OJ/1808/data/count8.in new file mode 100644 index 00000000..2063a694 --- /dev/null +++ b/S2OJ/1808/data/count8.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d00d41308cc2b2ff9b5f23cd2d2b9e9b01906edec65c428ecdab0c73bc0590 +size 20 diff --git a/S2OJ/1808/data/count8.out b/S2OJ/1808/data/count8.out new file mode 100644 index 00000000..9ec335d1 --- /dev/null +++ b/S2OJ/1808/data/count8.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e47ea6607d7d2bb9c45d9360c0d87b76033cdb9f8d218e5f6f46b526454559a4 +size 9 diff --git a/S2OJ/1808/data/count9.in b/S2OJ/1808/data/count9.in new file mode 100644 index 00000000..e9098e83 --- /dev/null +++ b/S2OJ/1808/data/count9.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b96e4805f535494b192b0f915155aefdef790a1f93795280e160763e32a686a0 +size 19 diff --git a/S2OJ/1808/data/count9.out b/S2OJ/1808/data/count9.out new file mode 100644 index 00000000..78516405 --- /dev/null +++ b/S2OJ/1808/data/count9.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:534cf65486a7a86282d0d1216a2849929fa45ea701285c2654edcd1e71d9e258 +size 10 diff --git a/S2OJ/1808/data/problem.conf b/S2OJ/1808/data/problem.conf new file mode 100644 index 00000000..9c73acac --- /dev/null +++ b/S2OJ/1808/data/problem.conf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5802d349857827d5b93670b0c2e17514ded4347885d29c6a8be19c4f560150c +size 179