Pagini recente » Cod sursa (job #2221645) | Cod sursa (job #1621370) | Cod sursa (job #2099764) | Cod sursa (job #1124740) | Cod sursa (job #1900654)
#include <iostream>
#include <vector>
#include <utility>
#include <cstdlib>
#include <fstream>
#include <queue>
#include <stack>
#include <cmath>
#define pb push_back
#define mp make_pair
#define Graph vector<vector<pair<int,int>>>
#define range(i, a, b) for(int i = a; i < b; i++)
#define INF 0x3f3f3f3f
using namespace std;
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef vector<pair<int, int>> vii;
typedef vector<int> vi;
typedef vector<bool> vb;
typedef vector<vector<int>> vvi;
typedef stack<int> si;
int main() {
int t, N, k;
cin >> t;
while(t--)
{
int cnt = 0;
vector<pair<int, int>> sols;
cin >> N;
for (k = 0; k <= floor(N / 2); k++)
{
int c = -k * (k + 1) - (N << 1);
int delta = 1 - (c << 2);
float sol = (-1 + sqrt(delta)) / 2;
if (sol == (int)sol)
{
cnt++;
sols.pb(mp(k + 1, sol));
}
}
printf("%d\n", cnt);
for (auto& s : sols)
printf("%d %d\n", s.first, s.second);
}
}