Cod sursa(job #1758033)

Utilizator xSliveSergiu xSlive Data 16 septembrie 2016 12:30:17
Problema Consecutive Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#define ll long long
#define NMAX 60000
using namespace std;

ll t;
ifstream f("consecutive.in");
ofstream g("consecutive.out");
pair<ll,ll> v[1<<17];
ll v_size;
void solve();

int main()
{
    f >> t;
    while(t--) solve();
    return 0;
}

void solve(){
    ll nr;
    v_size=0;
    f >> nr;
    ll deScazut=0;
    ll dist= sqrt(2 * nr);
    for(ll i=1;i <= dist;i++){
        deScazut+=i;
        if((nr - deScazut) % (i+1) == 0){
            if((nr - deScazut)/ (i+1))
                v[v_size++] = make_pair( (nr - deScazut)/ (i+1), (nr - deScazut)/ (i+1)+ i);
        }
    }
    g << v_size  << '\n';
    for(ll i=0;i<v_size ;i++) g << v[i].first << ' ' << v[i].second << '\n';
}