Cod sursa(job #1709148)

Utilizator UPB_Darius_Rares_SilviuPeace my pants UPB_Darius_Rares_Silviu Data 28 mai 2016 11:02:41
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.85 kb
#include <stdio.h>
#include <unordered_map>
#include <vector>
#define LMax 65000

using namespace std;
vector<pair<int, int> > sol;

int Tes;
int N;

int main() {

    freopen("consecutive.in", "r", stdin);
    freopen("consecutive.out", "w", stdout);

    scanf("%d", &Tes);


    while ( Tes -- ) {

        sol.clear();
        scanf("%d", &N);
        long long NN = 2 * N;

        for ( int n = 2; n * n <= NN; ++ n ) {
            if ( NN % n == 0 ) {
                int a1 = (2LL * N / n - n + 1) / 2;
                int a2 = a1 + n - 1;

                if ( a1 > 0 && a2 > 0 )
                    sol.push_back({a1, a2});
            }

        }

        printf("%d\n", sol.size());
        for ( int i = 0; i < sol.size(); ++ i )
            printf("%d %d\n", sol[i].first, sol[i].second);

    }


    return 0;
}