Cod sursa(job #1713386)

Utilizator rares_ciocieaRares Andrei Ciociea rares_ciociea Data 5 iunie 2016 15:06:59
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.86 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("consecutive.in");
ofstream out("consecutive.out");
int v[10000001],cat[10000001];
int sumak(unsigned int n,int k)
{
    int a,b;
    a=(n-(k*(k-1)/2))/k;
    b=a+k
    -1;
    if((a+b)*k/2==n)
        return a;
    else
        return -1;
}
int main()
{
    unsigned int n;
    int t,cate,cnt,i,j;
    in>>t;
    for(i=1;i<=t;i++)
    {
        in>>n;
        cate=2;
        cnt=0;
        j=0;
        while(cate<=sqrt(2*n))
        {
            if(sumak(n,cate)!=-1)
            {
                j++;
                cnt++;
                v[j]=sumak(n,cate);
                cat[j]=cate;
            }
            cate++;
        }
        out<<cnt<<'\n';
        for(j=1;j<=cnt;j++)
            out<<v[j]<<" "<<v[j]+cat[j]-1<<'\n';
    }
    return 0;
}