Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <fstream>
- #include <vector>
- #include <string>
- int main(int argc, char* argv[]) {
- std::vector<long long> seeds;
- std::string line;
- std::ifstream seedsFile(argv[1]);
- if (seedsFile.is_open()) {
- while (std::getline(seedsFile, line)) {
- seeds.push_back(std::stoll(line, NULL));
- }
- }
- long long len = seeds.size(), checks = len*(len-1)/2, k, xtest = len-2, ystart = 1;
- __int128 SolX, SolZ, SolBetterX, SolBetterZ, Diff;
- for(long long c = 0, x = 0, y = ystart; c < checks; c++, x++, y++) {
- Diff = seeds[y]-seeds[x];
- SolX = -126780825563*Diff;
- SolZ = 49284120807*Diff;
- k = round((SolX+SolZ)/208975141171);
- SolBetterX = SolX-k*341873128712;
- SolBetterZ = SolZ+k*132897987541;
- if (SolBetterX < 58594 && SolBetterX > -58594 && SolBetterZ < 58594 && SolBetterZ > -58594) {
- std::cout << "Found: " << seeds[x] << "/" << seeds[y] << std::endl
- << "Distance: " << (long long)SolBetterX << " X " << (long long)SolBetterZ << " Z " << std::endl;
- }
- if (c%100000000 == 0) std::cout << (float)c/checks*100 << "%" << std::endl;
- if (x == xtest) {
- x = -1;
- xtest += x;
- }
- if (y == len-1) {
- y = ystart;
- ystart++;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement