diff --git a/convolution/convolution_mod/gen/fft_killer.cpp b/convolution/convolution_mod/gen/fft_killer.cpp index 9da9bdc57..6871b4e7c 100644 --- a/convolution/convolution_mod/gen/fft_killer.cpp +++ b/convolution/convolution_mod/gen/fft_killer.cpp @@ -7,19 +7,21 @@ using namespace std; int main(int, char* argv[]) { long long seed = atoll(argv[1]); auto gen = Random(seed); + auto sub = (seed <= 1) || ((seed - 2) & 1) ? 1000 : 10; + auto div = (seed <= 1) || ((seed - 2) & 2) ? 1 : 2; int n = N_AND_M_MAX; int m = N_AND_M_MAX; vector a(n), b(m); - constexpr int B = 1<<15; + const int B = (seed <= 1) || ((seed - 2) & 4) ? 1<<15 : std::sqrt(MOD); for (int i = 0; i < n; i++) { - int lw = gen.uniform(B - 1000, B - 1); - int up = gen.uniform(MOD / B - 1000, MOD / B - 1); + int lw = gen.uniform(B - sub, B - 1); + int up = gen.uniform(MOD / div / B - sub, MOD / div / B - 1); a[i] = up * B + lw; } for (int i = 0; i < m; i++) { - int lw = gen.uniform(B - 1000, B - 1); - int up = gen.uniform(MOD / B - 1000, MOD / B - 1); + int lw = gen.uniform(B - sub, B - 1); + int up = gen.uniform(MOD / div / B - sub, MOD / div / B - 1); b[i] = up * B + lw; } diff --git a/convolution/convolution_mod/hash.json b/convolution/convolution_mod/hash.json index b60174738..8eca14893 100644 --- a/convolution/convolution_mod/hash.json +++ b/convolution/convolution_mod/hash.json @@ -7,6 +7,22 @@ "fft_killer_00.out": "08452ccbc94ce4a658bae7e02c4b3df62ccd3c28bddcfbd64a796ce51b9cb91a", "fft_killer_01.in": "a624e97bd32fbb1a2f76534f29072b8ef97cb1cc32e2e30c43d61ecb57d450db", "fft_killer_01.out": "64b26ddc3943011647852260b5b41c805cddb8981d38785a95fedce3dcf379c4", + "fft_killer_02.in": "b9ba76d8a8a4f0a968475601d1a088333a1469604c3a5007e2245d78e39af544", + "fft_killer_02.out": "912dd818130e7f8cb40f52a7aa041d67d9c795604dd561accc748f9bcea62e95", + "fft_killer_03.in": "f7710d184d527c071fdd0fea78c0b05605c6287c7fe754bc412b8c97de07c471", + "fft_killer_03.out": "e00b58bdf178e876e7332f067e19ab06798ebfb48ef09f5541bdaa6a52e46545", + "fft_killer_04.in": "0cd439fa2d751c147949cd2e37a489f771f341765eed8a8105a480c65bbf82ff", + "fft_killer_04.out": "1a3b2d8dcee4df8772a9695a0d4aea010e7a30575ed660e6a48c7acec6bb5186", + "fft_killer_05.in": "a63716e1bfc10a5f665fd1c9994a1640eafc544ceea07fc20346d6154a87a9ef", + "fft_killer_05.out": "d93db524e15918d4223875c04cc8e00611dc4eecb0d7b93f91fc4ae0f2f4709a", + "fft_killer_06.in": "496047846324f77317a67ff00ec270f0657c8e4363094841895142a4d1d30728", + "fft_killer_06.out": "e03974a015c98d067795803980ea1e446b999c68de33e9216fd5ef3f561f54ca", + "fft_killer_07.in": "ac83d881b41535714d2e2f45b13ea219179c4f4879b740bffe2dc31d21280cfa", + "fft_killer_07.out": "17066a0c3932c03e4134f60a7bc8b4917ed2cdb18777d988579b22a98d073938", + "fft_killer_08.in": "f085ceac341cbf1d497725b5643b68389b2104672f14234866d78013201467a4", + "fft_killer_08.out": "0de4a06680ae316750cde0d95250fe5a450bcb61b4c0a93ac45fb9254c9768a8", + "fft_killer_09.in": "ca172142ef8f6781efc316f53e3f4461d1ed6b9a5e934977b02934d9bc136432", + "fft_killer_09.out": "9f72d2b32c2f36106f074aafc8dd523c9fb6692a191ed40ce12db70f2c82832d", "max_ans_zero_00.in": "45932122a32f92e6a87b35cd980553a17082807a7f54c5594c92de911f88e181", "max_ans_zero_00.out": "cf578ce195922f9426f41d7c7f4fbb67673d66b58d900b42ec18808b53c79dea", "max_random_00.in": "3bbe45c5ce2820f3961db9f5746dfad939c09cb78d62bb1f9729ff3ac83e4208", diff --git a/convolution/convolution_mod/info.toml b/convolution/convolution_mod/info.toml index b3acf05e6..3f05b9469 100644 --- a/convolution/convolution_mod/info.toml +++ b/convolution/convolution_mod/info.toml @@ -19,7 +19,7 @@ forum = "https://github.com/yosupo06/library-checker-problems/issues/42" number = 2 [[tests]] name = "fft_killer.cpp" - number = 2 + number = 10 [[tests]] name = "medium_all_zero.cpp" number = 1 diff --git a/convolution/convolution_mod_1000000007/gen/fft_killer.cpp b/convolution/convolution_mod_1000000007/gen/fft_killer.cpp index 9da9bdc57..6871b4e7c 100644 --- a/convolution/convolution_mod_1000000007/gen/fft_killer.cpp +++ b/convolution/convolution_mod_1000000007/gen/fft_killer.cpp @@ -7,19 +7,21 @@ using namespace std; int main(int, char* argv[]) { long long seed = atoll(argv[1]); auto gen = Random(seed); + auto sub = (seed <= 1) || ((seed - 2) & 1) ? 1000 : 10; + auto div = (seed <= 1) || ((seed - 2) & 2) ? 1 : 2; int n = N_AND_M_MAX; int m = N_AND_M_MAX; vector a(n), b(m); - constexpr int B = 1<<15; + const int B = (seed <= 1) || ((seed - 2) & 4) ? 1<<15 : std::sqrt(MOD); for (int i = 0; i < n; i++) { - int lw = gen.uniform(B - 1000, B - 1); - int up = gen.uniform(MOD / B - 1000, MOD / B - 1); + int lw = gen.uniform(B - sub, B - 1); + int up = gen.uniform(MOD / div / B - sub, MOD / div / B - 1); a[i] = up * B + lw; } for (int i = 0; i < m; i++) { - int lw = gen.uniform(B - 1000, B - 1); - int up = gen.uniform(MOD / B - 1000, MOD / B - 1); + int lw = gen.uniform(B - sub, B - 1); + int up = gen.uniform(MOD / div / B - sub, MOD / div / B - 1); b[i] = up * B + lw; } diff --git a/convolution/convolution_mod_1000000007/hash.json b/convolution/convolution_mod_1000000007/hash.json index 7524fc92f..a2043591e 100644 --- a/convolution/convolution_mod_1000000007/hash.json +++ b/convolution/convolution_mod_1000000007/hash.json @@ -7,6 +7,22 @@ "fft_killer_00.out": "5c5b16703a8037440e51edb4ecd23f7221969a78412b09b0e5b751d7dc3c3bb8", "fft_killer_01.in": "ad873a6f5d5657d270160f8ffe65d9abd56f41adf4cffdc86202136430e42f35", "fft_killer_01.out": "76826553c1c8b3ddb37cd04b15348e4b5e0a7360eb4c2eea4be06b3e2668e482", + "fft_killer_02.in": "ed69754b2aaa86d30751c6bbc6a7659438d198c9883f998c401ca8fbff17f8f9", + "fft_killer_02.out": "022f63578ba1fe8637f8afcad1c56f8d0dac2f6edc29438e5ff828f95186749f", + "fft_killer_03.in": "73eee0e31b39281547c725199a0dbc4fbd4ac251723f87b8100aa46462fc3811", + "fft_killer_03.out": "f69c76e2d857265511f8f4e29120bb867bff5d89e0776a05f3ddf063d66c7e86", + "fft_killer_04.in": "96a0ae0d0f1222c2b3867a73adc1f4d34c5ca77164081f07fb6af19c55750585", + "fft_killer_04.out": "7e2b71ee289a7cbb1e778eee3b7c07223fcfcb5e424b96bcd0892d1339dea26a", + "fft_killer_05.in": "a1de858bc2f8c6fe267eff8473579f790995b7fa3afdc2d89978605957d47678", + "fft_killer_05.out": "94a685d671d4e39f7fc7394d47205c2cf0da77d05bdbda134fd647c83c101974", + "fft_killer_06.in": "c50813eab9885a4e8773a53e847a1f7a637ee1e755c32b92435615766f4dafb4", + "fft_killer_06.out": "b386d928fcab1df567742fbbabd18cb43ee3bf463d53cb9eb0b08b4fb83096ef", + "fft_killer_07.in": "3d7e4951eb28702d725f3b75ca22e3539ea7e8b08bfb00d5c7d950141f921a44", + "fft_killer_07.out": "029ec5b4ecd72f96a09e6464b0b6eab0da551cc913d0b9297323a9166159aeac", + "fft_killer_08.in": "adab0aff4e385d7255e3fbc0e4e030722853ce7d035597727a21b6d5c5f3d144", + "fft_killer_08.out": "d919b139690f75146242edb66149f4886bd86e03f61c3f4f4c93578c1c682a03", + "fft_killer_09.in": "abd9375269602d4693f8a6d26789b629c596ce4e7d4d5084483448e53f317a69", + "fft_killer_09.out": "14ead14998409221818af1305683d172aa568219feafdce3718717a1477515f3", "max_ans_zero_00.in": "fdf42aae02c3335ed46b91a0c98bb6ebf4e468110ce13deebc06fb3eede67bf9", "max_ans_zero_00.out": "cca48cb670a6b7b1d2d7606ce4f0eec1c160a63e34da0b8dc8532166e18ca652", "max_random_00.in": "7c7a885e1d1534bbf7ae71c1f26a92ffda9369b6800a9dc02d43b61934432e70", diff --git a/convolution/convolution_mod_1000000007/info.toml b/convolution/convolution_mod_1000000007/info.toml index ea13b3984..b295821d9 100644 --- a/convolution/convolution_mod_1000000007/info.toml +++ b/convolution/convolution_mod_1000000007/info.toml @@ -19,7 +19,7 @@ forum = "https://github.com/yosupo06/library-checker-problems/issues/145" number = 2 [[tests]] name = "fft_killer.cpp" - number = 2 + number = 10 [[tests]] name = "medium_all_zero.cpp" number = 1 diff --git a/convolution/convolution_mod_large/gen/fft_killer.cpp b/convolution/convolution_mod_large/gen/fft_killer.cpp index 5ff86c1ea..2864f202d 100644 --- a/convolution/convolution_mod_large/gen/fft_killer.cpp +++ b/convolution/convolution_mod_large/gen/fft_killer.cpp @@ -9,19 +9,21 @@ using namespace std; int main(int, char* argv[]) { long long seed = atoll(argv[1]); auto gen = Random(seed); + auto sub = (seed <= 1) || ((seed - 2) & 1) ? 1000 : 10; + auto div = (seed <= 1) || ((seed - 2) & 2) ? 1 : 2; int n = N_AND_M_MAX; int m = N_AND_M_MAX; vector a(n), b(m); - constexpr int B = 1 << 15; + const int B = (seed <= 1) || ((seed - 2) & 4) ? 1<<15 : std::sqrt(MOD); for (int i = 0; i < n; i++) { - int lw = gen.uniform(B - 1000, B - 1); - int up = gen.uniform(MOD / B - 1000, MOD / B - 1); + int lw = gen.uniform(B - sub, B - 1); + int up = gen.uniform(MOD / div / B - sub, MOD / div / B - 1); a[i] = up * B + lw; } for (int i = 0; i < m; i++) { - int lw = gen.uniform(B - 1000, B - 1); - int up = gen.uniform(MOD / B - 1000, MOD / B - 1); + int lw = gen.uniform(B - sub, B - 1); + int up = gen.uniform(MOD / div / B - sub, MOD / div / B - 1); b[i] = up * B + lw; } diff --git a/convolution/convolution_mod_large/hash.json b/convolution/convolution_mod_large/hash.json index ca6c68528..ee5b2ea55 100644 --- a/convolution/convolution_mod_large/hash.json +++ b/convolution/convolution_mod_large/hash.json @@ -7,6 +7,22 @@ "fft_killer_00.out": "6c29f0319436ff58f76a7bde6309feb1888e8efc549cf30239aa78b39c0b3831", "fft_killer_01.in": "0a1c1a4baf06a0faddcddc2e455238037aeae65e317eb57f86c39b825c5bfddf", "fft_killer_01.out": "1c15ba7aae24821fcf18539d477e877dfa423cd286b351a4af15042d0466a8df", + "fft_killer_02.in": "5f60cbb1ac1676d9d82e52b2a26574a7abbcaeeec5d0577286e3e55e98581c62", + "fft_killer_02.out": "a965fff14b8f759a2632cd82d56575110881a60a2bf94b2e0288279ae1979650", + "fft_killer_03.in": "fc4d49a9d9d418016b537ed3f8e4df8e242d1a35e3acc965400fcc2c794d0bea", + "fft_killer_03.out": "1fa8e9c0420eef39c0dd202d4a36445191a22355681c756cb9b549018d939c83", + "fft_killer_04.in": "575efee222b868c2675added9e4abe3a4cd37e38a3024d7563ac11fb9adba57d", + "fft_killer_04.out": "64da632994e02913a6dd9b859cabc6842ebab9e20266dc43bc8faf40c935bfbb", + "fft_killer_05.in": "dac1c58ada06d2a8b3258f1435293c8df89f24da4bcfd03e226f900ebc36d426", + "fft_killer_05.out": "82d8e9738ff3ec8acfde14cb828f4cc0e54b411027f1481f06204241fcc7dc13", + "fft_killer_06.in": "031a0ab31be5f8f41e1c32b45852e19e03892139a5c224f56c0920faaf158ac6", + "fft_killer_06.out": "1df5bbe5b9249014e00cf0bba0de0341151055e9abdb44080d0eacdd376b4eb4", + "fft_killer_07.in": "353e578aec60e83d9b3f0548806a72a2059a7a492b9048848bc5bff8bf9b434b", + "fft_killer_07.out": "773669f92ee79843a713cfa653c5b92e82b49261127398ba557399333abd9bee", + "fft_killer_08.in": "df148fc9c91211104cae7c210682e468b4c57fda6b63d39e1d1cf0b7cbd7e197", + "fft_killer_08.out": "2ac63ceabfb2e4699cf4799f0754b4f334331e10b23a92230d70631a36749d52", + "fft_killer_09.in": "b791c171e2355a190e1f40c39177f7c044985aa926f31b0521d5b8953884deef", + "fft_killer_09.out": "973756b6a9a49bbf8656e14ec896a389672dbacf6003806bc379e7b90ba975e3", "max_ans_zero_00.in": "19a7e956c3fa1f281098e0f5af73cd48528c967dc05654a6944bc5d7a946e582", "max_ans_zero_00.out": "72125c492cd92511e37f17f0257dd9e4627ae18a690f09a231ad38884c50d5be", "max_random_00.in": "a90a1d4737effb3caaf72184a18cb3e76d28f86e91cb0a0a76dee43a54aa6092", diff --git a/convolution/convolution_mod_large/info.toml b/convolution/convolution_mod_large/info.toml index 9559dd7b8..dcf022fd6 100644 --- a/convolution/convolution_mod_large/info.toml +++ b/convolution/convolution_mod_large/info.toml @@ -19,7 +19,7 @@ forum = "https://github.com/yosupo06/library-checker-problems/issues/720" number = 2 [[tests]] name = "fft_killer.cpp" - number = 2 + number = 10 [[tests]] name = "medium_all_zero.cpp" number = 3 diff --git a/polynomial/polynomial_taylor_shift/gen/fft_killer.cpp b/polynomial/polynomial_taylor_shift/gen/fft_killer.cpp index 8c6f2e6fc..7308374cf 100644 --- a/polynomial/polynomial_taylor_shift/gen/fft_killer.cpp +++ b/polynomial/polynomial_taylor_shift/gen/fft_killer.cpp @@ -8,14 +8,16 @@ int main(int, char *argv[]) { long long seed = atoll(argv[1]); auto gen = Random(seed); + auto sub = (seed <= 1) || ((seed - 2) & 1) ? 1000 : 10; + auto div = (seed <= 1) || ((seed - 2) & 2) ? 1 : 2; int n = N_MAX; vector a(n); - constexpr int B = 1 << 15; + const int B = (seed <= 1) || ((seed - 2) & 4) ? 1<<15 : std::sqrt(MOD); for (int i = 0; i < n; i++) { - int lw = gen.uniform(B - 1000, B - 1); - int up = gen.uniform(MOD / B - 1000, MOD / B - 1); + int lw = gen.uniform(B - sub, B - 1); + int up = gen.uniform(MOD / div / B - sub, MOD / div / B - 1); a[i] = up * B + lw; } int c = gen.uniform(0ll, MOD - 1); diff --git a/polynomial/polynomial_taylor_shift/hash.json b/polynomial/polynomial_taylor_shift/hash.json index 119034ba6..50c1800c8 100644 --- a/polynomial/polynomial_taylor_shift/hash.json +++ b/polynomial/polynomial_taylor_shift/hash.json @@ -7,6 +7,22 @@ "fft_killer_00.out": "25b796e769735e089958356afd5297dc861026e8f3e1ab2367b1ee09e3b2c9f5", "fft_killer_01.in": "40891215d37aa07b294008b82d4621f20c2ceba057ac3bd8e1294371342176ed", "fft_killer_01.out": "98cf9162b1d2aa6c8dc6c0b5bc9e1777f084d6e74351b4f88732cd3bc2838dd9", + "fft_killer_02.in": "c1f82251874c20d9f8533d75430822d9c29dc5d14b61a08abc2320943684687a", + "fft_killer_02.out": "cdd5a6b580456793d051d98bae1bfd9b352adbdfc6800eba4e49749edbac75de", + "fft_killer_03.in": "beab4e408b6be0e3bd4dc0edd7ec11e7955cb561f7263a01cfe4735a266413fa", + "fft_killer_03.out": "a9ff61c5faab4d5ea80a33c071e5c0556b77e1c8adb3eb8615fe03e79b392071", + "fft_killer_04.in": "f119012f521f36a650a0256d28621cad035213e40dea249e035905c4e5bed7bc", + "fft_killer_04.out": "846445a88e385e56dde231fd5b3c7f00e147ffbf9e0eda9f5b47355991581c25", + "fft_killer_05.in": "1ac01d175151cff07e6cfc3df635811aa62d33c033f0ca98b175c65a086f6677", + "fft_killer_05.out": "bcde028ea35a918a9534b015d03ef097c8c6d2bc084727bf4f1abd168ca2fca0", + "fft_killer_06.in": "eb92c6275f3485a3c31e6eda52a2b072a528f612cc31f32e02aedb48f48352d7", + "fft_killer_06.out": "b89fa00a264ff79bf5f7b0bcc415ae1125b6e93f9e72db599dcb29bc7279a108", + "fft_killer_07.in": "03e8a58a70451424cf725627998d7d7f6c5c56181cfdcfe2bc7fe9b93a8a86b3", + "fft_killer_07.out": "d2f5bfec137079a10f03d841eae05e03d32c287d15b889512e8851b31e18bbf6", + "fft_killer_08.in": "926ac1689a8377885814a493281062566e701772ad68fc53c09aef16e03c1531", + "fft_killer_08.out": "6e72f718f89c6d895041df985ea125b6c3938d04189620deec85aa5928ffed2f", + "fft_killer_09.in": "192c91234a0d0a650996cc23058997fbe9ccffcb1ec77f6d2a5d2e8d1e787409", + "fft_killer_09.out": "cb0c767b72f5772a3d4ff42597ba2ac6a9393a010c8c4dda49590722c2886c64", "max_random_00.in": "ff5f733d78186d7592779ef5635863e86b305d3df77384ac3cda7eca84b27e32", "max_random_00.out": "1db2c633136ee617f67bcd74cc2c137ebd534094c9ed29518f3ff60cfa00f22f", "max_random_01.in": "cf1a81808547dff71414f5a07c438302e0bbb86ced97b81f29751b34b1058654", diff --git a/polynomial/polynomial_taylor_shift/info.toml b/polynomial/polynomial_taylor_shift/info.toml index 6b3311744..2bdf26cfc 100644 --- a/polynomial/polynomial_taylor_shift/info.toml +++ b/polynomial/polynomial_taylor_shift/info.toml @@ -19,7 +19,7 @@ forum = "https://github.com/yosupo06/library-checker-problems/issues/392" number = 2 [[tests]] name = "fft_killer.cpp" - number = 2 + number = 10 [[tests]] name = "medium_all_zero.cpp" number = 1