#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 2000010;
long long int arr[maxn];
int mid1;
int binary_find(int l, int r, int x)
{
while (l < r)
{
mid1 = l + r >> 1;
if (arr[mid1] > x)
{
r = mid1;
}
else if (arr[mid1] < x)
{
l = mid1 + 1;
}
else
{
return mid1;
}
}
return l;
}
int main()
{
long long int n;
cin >> n;
for (int i = 1; i <= n; i++) arr[i] = arr[i - 1] + i;
for (int i = 1; i <= n; i++)
{
long long int mid = arr[i - 1] + n;
long long int a = binary_find(1, n, mid);
if (arr[a] - arr[i - 1] == n)
{
if (i != a) cout << i << " " << a << endl;
}
}
return 0;
}
为什么只有70分啊