Cod sursa(job #1709095)

Utilizator twistedstoryUAIC Twisted Story twistedstory Data 28 mai 2016 10:53:14
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.65 kb
#include<bits/stdc++.h>
using namespace std;

long long i,t,nr,x[100005],y[100005],val,gmb,fnc,q,w;

int main()
{
  ifstream cin("consecutive.in");
  ofstream cout("consecutive.out");

  ios_base::sync_with_stdio(0); cin.tie(0);

  for(cin>>t;t;--t)
  {
    cin>>val;

    for(nr=0,i=2;i<=(1LL<<16)+1e3;++i)
    {
      gmb=2LL*val-1LL*i*(i-1); fnc=2LL*i;

      if(gmb%fnc) continue;
      if(gmb/fnc<=0) continue;

      q=gmb/fnc; w=gmb/fnc+i-1;
      if(((w-q+1)*((q+w)))/2!=val) continue;

      x[++nr]=gmb/fnc; y[nr]=gmb/fnc+i-1;
    }

    cout<<nr<<'\n';
    for(i=1;i<=nr;++i) cout<<x[i]<<' '<<y[i]<<'\n';
  }

 return 0;
}