Cod sursa(job #1709093)

Utilizator TAKAUCV Ciurez Ehorovici Danciulescu TAKA Data 28 mai 2016 10:52:35
Problema Consecutive Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

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

long long P;
int T;
vector<pair<long long, long long> >v;

int main()
{
    fin >> T;

    while( T -- )
    {
        fin >> P;

        long long N = (-1 + sqrtl(1 + 8 * P)) / 2;

        for(long long i = 2; i <= N; i ++)
        {
            if((2 * P - i * (i - 1) ) % (2 * i) == 0  && (2 * P - i * (i - 1) ) / (2 * i)  >= 0)
            {
                v.push_back( make_pair(P / i - (i - 1) / 2, P / i - (i - 1) / 2 + i - 1) );
            }
        }
        fout << v.size() << '\n';
        for(int i = 0; i < v.size(); i ++)
        {
            fout << v[i].first << " " << v[i].second << '\n';
        }
        v.clear();
    }

    return 0;
}