Cod sursa(job #1711908)

Utilizator andi12Draghici Andrei andi12 Data 1 iunie 2016 15:57:03
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.08 kb
#include <cstdio>
#include<algorithm>
using namespace std;
int sol[100000];
int main()
{
    FILE *in,*out;
    in=fopen("consecutive.in","r");
    out=fopen("consecutive.out","w");
    int t,i,n,a1,test,d1,d2,ind;
    long long nr;
    fscanf(in,"%d",&t);
    for(test=1;test<=t;test++)
    {
        ind=0;
        fscanf(in,"%lld",&nr);
        nr=nr*2;
        for(d1=2;d1*d1<=nr;d1++)
        {
            if(nr%d1==0)
            {
                d2=nr/d1;
                n=d1;
                if((d2-n+1)>=2 && (d2-n+1)%2==0)
                {
                    ind++;
                    sol[ind]=n;
                }

                n=d2;
                if((d1-n+1)>=2 && (d1-n+1)%2==0)
                {
                    ind++;
                    sol[ind]=n;
                }
            }
        }
        sort(sol+1,sol+ind+1);
            fprintf(out,"%d\n",ind);
            for(i=1;i<=ind;i++)
            {
                n=sol[i];
                a1=nr/n-n+1;
                a1=a1/2;
                fprintf(out,"%d %d\n",a1,a1+n-1);
            }
    }
    return 0;
}