Pagini recente » Cod sursa (job #253736) | Cod sursa (job #2436970) | Cod sursa (job #973431) | Cod sursa (job #3225451) | Cod sursa (job #1712022)
#include<fstream>
#include<deque>
using namespace std;
ifstream f("consecutive.in");
ofstream g("consecutive.out");
int n,ns,sol[20],t;
deque<pair<int,int> >fin;
void ret(int l)
{
ns++;
fin.push_back(make_pair(sol[1],sol[l]));
}
void bkt(int i,int sp)
{
int j;
if(sp==n&&i>2)
ret(i-1);
else
for(j=sol[i-1]+1;j<=n-sp;j++)
if(j==sol[i-1]+1||i==1)
{
sol[i]=j;
bkt(i+1,sp+j);
}
}
int main()
{
f>>t;
while(t--)
{
f>>n;
bkt(1,0);
g<<ns<<"\n";
while(!fin.empty())
{
g<<fin.front().first<<" "<<fin.front().second<<"\n";
fin.pop_front();
}
}
}