Cod sursa(job #1709129)

Utilizator Furia_PolitehniciiUPT Statescu Stana Mihut Furia_Politehnicii Data 28 mai 2016 11:00:05
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.85 kb
#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;



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

    int T;

    scanf("%d", &T);

    while(T--) {

        int x, k, n;
        scanf("%d", &x);
        int len;
        int cnt = 0;
	
	for (len = 2; (long long)len * (len + 1) / 2 <= x; len++);

        for (k = 2; k < len; k++) {
            long long nr = 2 * x + k * k - k;
            long long num = 2 * k;

            if (nr % num == 0)
                cnt++;
        }

        printf("%d\n", cnt);

        for (k = 2; k < len; k++) {
            long long nr = 2 * x + k * k - k;
            long long num = 2 * k;

            if (nr % num == 0) {
                n = nr / num;
                printf("%d %d\n", n-k+1, n);
            }
        }

    }


    return 0;
}