Cod sursa(job #1709167)

Utilizator vand_bot_la_PAUPB Mardale Mocanu Vasilache vand_bot_la_PA Data 28 mai 2016 11:08:33
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.66 kb
#include <stdio.h>
#include <vector>
using namespace std;

int t, n, res;
vector<pair<int, int> > sol;

int main(){
	freopen("consecutive.in", "r", stdin);
	freopen("consecutive.out", "w", stdout);
	scanf("%d", &t);
	for(int i = 0; i < t; ++i){
		sol.clear();
		scanf("%d", &n);

		int p, q, a, b;
		for(p = 1; p <= n; ++p)
			if((2 * n) % p == 0){
				q = (2 * n) / p;
				a = (p - q + 1) / 2;
				b = (p + q - 1) / 2;
				if(a >= 1 && b <= (n / 2 + 1) && n == (a + b) * (b - a + 1) / 2)
					sol.push_back(make_pair(a, b));
			}
	
		printf("%d\n", sol.size());
		for(int i = sol.size() - 1; i >= 0; --i)
			printf("%d %d\n", sol[i].first, sol[i].second);
	}
	return 0;
}