Cod sursa(job #1709341)

Utilizator CBOSTorinoUPB Andrei Bercaru CBOSTorino Data 28 mai 2016 11:52:10
Problema Consecutive Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

struct info {
    int first;
    int last;
};

struct comparator {
    inline bool operator()(struct info a, struct info b) {
	return (a.last - a.first) < (b.last - b.first);
    }
}comp;

int main() {
    int T, N;
    int nr_posib = 0;
    std::vector<struct info> vect;

    std::ifstream f("consecutive.in");
    std::ofstream g("consecutive.out");

    f >> T >> N;

    for (int tests = 0; tests < T; tests++) {
        int sum = 0;
        int j;
  	struct info current;
        for (int i = 1; i <= N / 2; i++) {
	    for (int k = 1; k < N; k++) {
		if ((k*k + k + 2*i*k + 2*i)/2 == N) {
		    nr_posib++;
		    current.first = i;
		    current.last = i + k;
		    vect.push_back(current);
		    break;
		}
	    }
	}
	std::sort(vect.begin(), vect.end(), comp);
	g << nr_posib << std::endl;
	int sz = vect.size();
	for (int i = 0; i < sz; i++) {
	    g << vect[i].first << " " << vect[i].last << std::endl;
	}
    }

    f.close();
    g.close();

    return 0;
}