Pagini recente » Cod sursa (job #2688226) | Cod sursa (job #2379609) | Cod sursa (job #2789218) | Cod sursa (job #689026) | Cod sursa (job #1709034)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
int T, N;
int main()
{
fin >> T;
for (int t = 0; t < T; t++) {
fin >> N;
vector<int> sol_low;
vector<int> sol_high;
for (int i = 1; i < N/2 + 1; i++) {
int l = i;
int r = N / 2 + 1;
while (l <= r) {
int mid = l + (r - l)/2;
if ((mid - i + 1)*(mid + i) == 2 * N) {
sol_low.push_back(i);
sol_high.push_back(mid);
break;
}
else {
if ((mid - i + 1) * (mid + i) < 2 * N)
l = mid + 1;
else
r = mid - 1;
}
}
}
fout << sol_low.size() << '\n';
for (int i = 0; i < sol_low.size(); i++) {
fout << sol_low[i] << " " << sol_high[i] << '\n';
}
}
}