Cod sursa(job #2054100)

Utilizator Seb16Ungureanu Paul Sebastian Seb16 Data 1 noiembrie 2017 18:26:32
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <math.h>

using namespace std;

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

int n, t, doubleN;
vector <pair <int, int> > v;

int main() {
	fin >> t;
	for (int i = 0; i < t; ++i) {
		fin >> n;
		doubleN = n * 2;
		for (int j = 1; j < (n / 2) + 2; ++j) {
			int delta = 1 + 4 * (doubleN + j * j - j);
			int sqrtDelta = sqrt(delta);
			if (sqrtDelta * sqrtDelta != delta)
				continue;
			if ((sqrtDelta - 1) % 2 != 0) 
				continue;
			int x2 = (-1 + sqrtDelta) / 2;
			v.push_back(make_pair(j, x2));
			//sum = (m + n) * (m - n  + 1) / 2;
		}
	}
	fout << v.size() << '\n';
	for (int i = 0; i < v.size(); ++i) {
		fout << v[i].first << ' ' << v[i].second << '\n';
	}
	return 0;
}