Cod sursa(job #1709150)

Utilizator StemakoUPT Marinescu Kolumban Stefan Stemako Data 28 mai 2016 11:02:52
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.68 kb
#include<iostream>
#include<fstream>
using namespace std;
long n,count;

long lower[100000], upper[100000];


int main(void){
  ifstream fin("consecutive.in");
  ofstream fout("consecutive.out");
  int t;

  fin>>t;
  while(t--){
    fin>>n;
    count=0;
    long nmax, nmin=n;
    for(nmax=n/2+1;nmax>=2;nmax--)
      for(nmin=std::min(nmin,nmax-2);nmin>=0;nmin--)
      {
	long value= ((nmax-nmin)*(nmax+nmin+1))/2;
	if(value>=n)
	  {
	    if(value==n)
	      {
		lower[count]=nmin+1;
		upper[count++]=nmax;
	      }
	    break;
	  } 
      }
    fout<<count<<"\n";
    for(int i=0;i<count;i++)
      fout<<lower[i]<<" "<<upper[i]<<"\n";
  }
  fout.close();
  fin.close();
  
  return 0;
}