Cod sursa(job #1709146)

Utilizator CodeFxSAPIENTIA CodeFx CodeFx Data 28 mai 2016 11:02:09
Problema Consecutive Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.84 kb
#include <stdio.h>
#include <math.h>
#include <time.h>

unsigned long long int A[10000][2];

int main() {
	int t;
	long long int a, b, c, d, szam ;
	unsigned long long int n, meddig;
	freopen("consecutive.in", "r", stdin);
	freopen("consecutive.out", "w", stdout);
	//clock_t start = clock(), end;
	scanf("%d", &t);
	while (t) {
		scanf("%llu", &b);
		szam = 0;
		meddig = (1 + sqrt((double)(1 + 8 * b))) / 2;
		for (n = 1; n <= meddig; ++n) {
			c = 2 * b - n*(n + 1);
			d = 2 * (n + 1);
			if (c > 0 && c % d == 0) {
				a = c / d;
				A[szam][0] = c / d;
				A[szam++][1] = n;
				//printf("%li\n", a);
			}
		}
		printf("%llu\n", szam);
		for (n = 0; n < szam; ++n) {
			printf("%llu %llu\n", A[n][0], A[n][0] + A[n][1]);
		}
		--t;
	}
	//end = clock();
	//printf("%Lf\n", (end - start) / CLOCKS_PER_SEC);
	return 0;
}