Cod sursa(job #1713930)

Utilizator antanaAntonia Boca antana Data 6 iunie 2016 22:17:01
Problema Consecutive Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.7 kb
#include <cstdio>
#define MAX 500000
using namespace std;
struct rasp{
    long long a1, nr;
}r[MAX+1];
int main()
{
    freopen("consecutive.in", "r", stdin);
    freopen("consecutive.out", "w", stdout);
    long long t, x, a, k, lim, n;
    scanf("%lld", &t);
    for(int i=1;i<=t;++i)
    {
        k=0;
        scanf("%lld", &x);
        lim=(x<<1);
        for(n=2; n*(n-1)<lim; ++n)
        {
            a=x-n*(n-1)/2;
            if(!(a%n))
            {
                r[++k].a1=a/n;
                r[k].nr=n;
            }
        }
        printf("%lld\n", k);
        for(n=1;n<=k;++n)
            printf("%lld %lld\n", r[n].a1, r[n].a1+r[n].nr-1);
    }
    return 0;
}