Cod sursa(job #2555760)

Utilizator Katherine456719Swan Katherine Katherine456719 Data 24 februarie 2020 12:19:12
Problema Consecutive Scor 100
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("consecutive.in");
ofstream g("consecutive.out");
pair <int,int> f[100001];
int main()
{
    int t, cont=0;
    fin>>t;
    for(int i=1; i<=t; ++i)
    {
        long long n;
        fin>>n;
        cont=0;
        for(long long nr=2; nr*nr <= 2*n; ++nr)
        {
            if((nr*(nr-1))%2==0 && (n-(nr*(nr-1))/2)%nr==0)
            {
                long long rec=(n-(nr*(nr-1))/2)/nr;
                if(rec>0)
                {
                    ++cont;
                    f[cont].first=rec;
                    f[cont].second=rec+nr-1;
                }
            }
        }
        g<<cont<<"\n";
        for(int i=1; i<=cont; ++i)
            g<<f[i].first<<" "<<f[i].second<<'\n';
    }
    return 0;
}