Cod sursa(job #1709917)

Utilizator UAIC_TheFormerOneUAIC TheFormerOne UAIC_TheFormerOne Data 28 mai 2016 14:25:34
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.88 kb
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<vector>
#include<fstream>
using namespace std;

vector <int> v1;
vector <int> v2;

int main()
{
	FILE* fin=fopen("consecutive.in","r");
	FILE* fout=fopen("consecutive.out","w");
	int M = 0;
	int T, N, i, j, si, sj;
	fscanf(fin, "%d", &T);
	v1.clear();
	v2.clear();
	while (T)
	{
		fscanf(fin, "%d", &N);
		i = sqrt(N)+1;
		j = 0;
		si = i*(i + 1) / 2;
		sj = 0;
		M = 0;
		while (j <= (N+1)/2)
		{
			if (si - sj > N)
			{
				++j;
				sj = j*(j + 1) / 2;
			}
			if (si - sj == N)
			{
				++M;
				v1.push_back(j + 1);
				v2.push_back(i);

			}
			if(si - sj <= N)
			{
				++i;
				si = i*(i + 1) / 2;
			}
		}
		fprintf(fout, "%d\n", M);
		for (i = M-1; i >= 0; --i)
		{
			fprintf(fout, "%d %d\n", v1[i],v2[i]);
		}
		v1.clear();
		v2.clear();
		--T;
	}

	return 0;
}