Cod sursa(job #3292149)

Utilizator IleaIlea Bogdan Ilea Data 7 aprilie 2025 10:32:27
Problema Consecutive Scor 100
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;

int main(){
    freopen("consecutive.in", "r", stdin);
    freopen("consecutive.out", "w", stdout);
    /// (2*a+k-1)*k/2=n
    /// iterez prin k si dupa caut sa vad a
    int t;
    cin>>t;
    for (int _=0; _<t; ++_){
        int64_t n;
        cin>>n;
        vector<pair<int, int>> sol;
        for (int64_t k=2; k*(k-1)<=2*n; ++k){
            if((2*n-k*(k-1))%(2*k)==0 && (2*n-k*(k-1))/(2*k)>0){
                sol.push_back({(2*n-k*(k-1))/(2*k), -1+k+(2*n-k*(k-1))/(2*k)});
            }
        }
        cout<<sol.size()<<"\n";
        for (auto it:sol)cout<<it.first<<" "<<it.second<<"\n";
    }
    return 0;
}