Cod sursa(job #1710007)

Utilizator UAIC_oricareUAIC oricare UAIC_oricare Data 28 mai 2016 14:45:53
Problema Consecutive Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.71 kb
#include <iostream>
#include <fstream>
#include<cmath>
using namespace std;
 typedef struct{long long x,y;}NOD;
    NOD v[10000000];
  long long t,i,n,j,k,a,b,p,q;
int main()
{
    ifstream f ("consecutive.in");
    ofstream g ("consecutive.out");
    f>>t;
for(k=1;k<=t;k++)
{   j=0;
    f>>n;
    int x=sqrt(n)*2+2;
 for(i=2;i<=x;i++)
 {
     if(i%2==0)
     {
         a=n/i-i/2;
         b=n/i+i/2;
     }
     else {a=n/i-i/2-1;b=n/i+i/2;}
          p=a*(a+1)/2;
          q=b*(b+1)/2;
          if(q-p==n&&a>=0)
          {v[++j].x=b;v[j].y=a+1;}
 }
    g<<j<<'\n';
    for(int l=1;l<=j;l++)
        g<<v[l].y<<' '<<v[l].x<<'\n';
}

    f.close();
    g.close();
    return 0;
}