Cod sursa(job #3359610)

Utilizator GreenBudAlex Talpau GreenBud Data 1 iulie 2026 00:30:27
Problema Consecutive Scor 100
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>

using namespace std;

struct Solutie {
    long long primul;
    long long ultimul;
};

void rezolvaTest(long long N, ofstream& g) {
    long long doiN = 2 * N;
    vector<Solutie> solutii;
    for (long long k = 2; k * k < doiN; ++k) {
        if (doiN % k == 0) {
            long long f = doiN / k;
            if ((f - k + 1) % 2 == 0) {
                long long a = (f - k + 1) / 2;
                long long b = a + k - 1;

                solutii.push_back({a, b});
            }
        }
    }

    g << solutii.size() << "\n";
    for (const auto& sol : solutii) {
        g << sol.primul << " " << sol.ultimul << "\n";
    }
}

int main() {
    ifstream f("consecutive.in");
    ofstream g("consecutive.out");


    int T;
    if (f >> T) {
        while (T--) {
            long long N;
            f >> N;
            rezolvaTest(N, g);
        }
    }

    f.close();
    g.close();
    return 0;
}