Cod sursa(job #2054080)

Utilizator ZanoxNonea Victor Zanox Data 1 noiembrie 2017 18:14:02
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.82 kb
#include <fstream>
#include <iostream>

#define lng long long

using namespace std;

lng n,i,j,k,l,a,card;
int t;
struct pair
{
    int a,b;
}v[0x10000];

/* pt un sir te nummere consec de la a la b suma lor e (a+b)(b-a+1)/2
pt un sir de numere consec de la a cu l nr e (2*a+l-1)*l/2=
                            2*a*l+l*l-l=2*n;
                            a=(2*n-l*(l-1))/l/2
                    */

int main()
{
    fstream f("consecutive.in",ios::in),g("consecutive.out",ios::out);
    f>>t;
    for(i=0;i<t;i++)
    {
        f>>n;
        card=0;
        for(l=2;l*(l-1)<=2*n;l++)
        {
            a=(2*n-l*(l-1))/l/2;
            if(2*a*l+l*l-l==2*n&&a>0){v[card].a=a;v[card].b=a+l-1;card++;}
        }
        g<<card<<'\n';
        for(i=0;i<card;i++)g<<v[i].a<<' '<<v[i].b<<'\n';
    }
}