Cod sursa(job #2749611)
Utilizator | Popescu Andrei Alexandru PopescuAndreiAlexandru | Data | 7 mai 2021 14:56:33 |
---|---|---|---|
Problema | Consecutive | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva ICPC | Marime | 1.13 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
int T,n;
vector < pair<int,int> > Sol;
int main()
{
fin>>T;
while(T--)
{
fin>>n;
int i=2;
while(true)
{
int p=n/i;
int k=i/2;
if(i%2==0)
k--;
long long sum=2LL*k*p+p;
if(i%2==0)
sum=sum+p+1;
if(p-k<1)
break;
else if(sum==n)
{
int a=p-k,b=p+k;
if(i%2==0)
b++;
Sol.push_back(make_pair(a,b));
}
i++;
}
fout<<Sol.size()<<'\n';
for(int i=0; i<Sol.size(); i++)
fout<<Sol[i].first<<" "<<Sol[i].second<<'\n';
while(!Sol.empty())
Sol.pop_back();
}
}