Pagini recente » Cod sursa (job #2936690) | Cod sursa (job #1921602) | Cod sursa (job #2624138) | Cod sursa (job #2771763) | Cod sursa (job #1712922)
#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;
}