Cod sursa(job #1709794)

Utilizator UPT_SyntaxErrorUPT SyntaxError UPT_SyntaxError Data 28 mai 2016 13:53:44
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.19 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long i,k,  t,  a[70000],b[70000], x;
long n;

int main()
{
    //freopen("consecutive.in", "r", stdin);
    //freopen("consecutive.out", "w", stdout);

    FILE* in = fopen("consecutive.in","r");
    FILE* out = fopen("consecutive.out","w");

    fscanf(in,"%ld", &t);

    for(k=0; k<t; k++)
    {
        fscanf(in,"%ld", &n);
        x = 0;

        //int M = ((int)sqrt(1.0+8*n)-1)/2 + 5;
        long M = (sqrt(1+8*n)-1)/2 + 10;

        for(i = 2; i < M; i++)
        {
            if(i%2==0)
            {
                if(((n%i)==(i/2)) && (n/i - (i / 2 -1)>0))
                {
                    a[x] = n/i - (i / 2 - 1);
                    b[x] = n/i + i/2;
                    x++;
                }
            }
            else
            {
                if(((n%i)==0) && (n/i - i/2>0))
                {
                    a[x] = n/i - i/2;
                    b[x] = n/i + i/2;
                    x++;
                }
            }
        }

        fprintf(out,"%ld\n",x);
        for(i=0; i<x; i++)
            fprintf(out,"%ld %ld\n", a[i], b[i]);

        fflush(out);

    }

    fclose(in);
    fclose(out);

    return 0;
}