Pagini recente » Rating Cruciat Lavinia (lavinia92) | Cod sursa (job #1709341)
#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;
}