Cod sursa(job #3217618)

Utilizator cberindeCodrin Berinde cberinde Data 23 martie 2024 22:30:36
Problema Consecutive Scor 100
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.87 kb
#include <iostream>
#include <vector>
#include <utility>
#include <fstream>

using namespace std;

ifstream fin("consecutive.in");
ofstream fout("consecutive.out");

int main() {
    long long T, N;
    long long first_term, terms, sum;
    vector<pair<long long, long long>> sol;
    fin >> T;
    for (int i = 0; i < T; i++) {
        fin >> N;
        first_term = 1;
        terms = 2;
        sol.clear();
        do {
            sum = N - terms * (terms - 1) / 2;
            first_term = sum / terms;
            if (sum % terms == 0 && first_term > 0) {
                sol.push_back({first_term, first_term + terms - 1});
            }
            terms++;
        } while (first_term > 0);
        fout << sol.size() << "\n";
        for (auto it : sol) {
            fout << it.first << " " << it.second << "\n";
        }
    }
    return 0;
}