Cod sursa(job #2158639)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 10 martie 2018 14:41:57
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>
#include <algorithm>

using namespace std;

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

long long t;
vector<pair<long long int,long long int> >v;
long long a,b;

inline bool e_bine(long long x,long long n){
    if((2*n) % (x+1) == 0 && (2*n/(x+1) - x) % 2 == 0) {
        a = (2*n/(x+1)- x)/2;
        b = x + a;
        return true;
    }
    return false;
}

int main()
{
    ios::sync_with_stdio(false);
    in.tie(0);
    out.tie(0);
    in>>t;
    long long nr;
    for(int i = 0; i < t; i++){
        in>>nr;
        v.clear();
        int x,pos;
        for(x = 1; x*x <= nr+1; x ++){
            if(e_bine(x,nr))
                v.push_back(make_pair(a,b));
        }
        out<<v.size()<<"\n";
        for(int i = 0; i < v.size(); i++)
            out<<v[i].first<<" "<<v[i].second<<"\n";
    }


    return 0;
}