Cod sursa(job #1709288)

Utilizator DobosDumitriuTUIASI AC Team 2016 bis DobosDumitriu Data 28 mai 2016 11:39:42
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.17 kb
#include <fstream>
#include <utility>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
vector<pair<int,int> > x, sol;
long z,nrsol=1,m,p[50000],pr[50000],k,T,vmax,n,nrh;
pair<int,int> aux;
int main()
{
    ifstream fin("consecutive.in");
    ofstream fout("consecutive.out");
    vmax=sqrt((1<<31)-1);
    for(int i=2; i<=vmax; i++)
    {
        if(p[i]==0)
        {
            pr[k++]=i;
            for(int j=i; j<=vmax; j+=i)
            {
                p[j]=1;
            }
        }
    }
    fin>>T;
    for(int o=1; o<=T; o++)
    {
        fin>>n;
        z=n/2;
        nrsol=1;
        sol.clear();
        for(int i=3;i<=z;i++)
        {
            if(n%i==0)
            {
                nrsol++;
                if(n/i-i/2>0)
                    sol.push_back(make_pair(n/i-i/2,n/i+i/2));
            }
        }
        fout<<nrsol<<'\n';
        if(n%2==0&&n/2-1>0)
        {
        fout<<n/2-1<<' '<<n/2+1<<'\n';
        }
        if(n%2==1&&n/2-1>0)
        {
        fout<<n/2<<' '<<n/2+1<<'\n';
        }
        for(int i=0;i<sol.size();i++)
        {
            fout<<sol[i].first<<' '<<sol[i].second<<'\n';
        }
    }
    return 0;
}