Cod sursa(job #1712922)

Utilizator andreiudilaUdila Andrei andreiudila Data 4 iunie 2016 10:09:05
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.04 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
int n,i,t,x,k,r,j,sol,suma,nr1,nr2;

struct vct{
int v1,v2;
}v[100001];


bool comp(vct a, vct b)
{
    return a.v1>b.v1;
}
int main()
{
    fin>>t;
    for(k=1;k<=t;++k)
    {

        sol=0;
        r=0;
        suma=0;
        nr1=0;
        nr2=0;
        for(i=1;i<=100000;++i)
            v[i].v1=0, v[i].v2=0;





        fin>>n;

        r=n/2+1;

        for(j=1;j<=r;++j)
            for(i=1;i<=j;++i)
            {
            ///suma de la i la j == suma (1,j) - suma(1,i-1)

            suma=(j*(j+1)/2)-(i*(i-1)/2);

            if(suma==n) //fout<<i<<" "<<j<<"\n"; sol++;
            { v[++nr1].v1=i; v[++nr2].v2=j; sol++; }

            }

            fout<<sol<<"\n";

        ///sortez v1 si v2 in functie de v2[i]-v1[i];

        sort(v+1,v+n+1,comp);

        for(i=1;i<=nr1;++i)
            fout<<v[i].v1<<" "<<v[i].v2<<"\n";

    }
    return 0;
}