Cod sursa(job #1712968)

Utilizator ArkinyStoica Alex Arkiny Data 4 iunie 2016 13:21:57
Problema Consecutive Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("consecutive.in");
ofstream fout("consecutive.out");

long long P;
int T;
vector<pair<long long, long long> >v;

int main()
{
	fin >> T;

	while (T--)
	{
		fin >> P;

		long long N = (-1 + sqrtl(1 + 8 * P)) / 2;

		for (long long i = 2; i <= N; i++)
		{
			if ((2 * P - i * (i - 1)) % (2 * i) == 0 && (2 * P - i * (i - 1)) / (2 * i) >= 0)
			{
				v.push_back(make_pair(P / i - (i - 1) / 2, P / i - (i - 1) / 2 + i - 1));
			}
		}
		fout << v.size() << '\n';
		for (int i = 0; i < v.size(); i++)
		{
			fout << v[i].first << " " << v[i].second << '\n';
		}
		v.clear();
	}

	return 0;
}