Cod sursa(job #661706)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 14 ianuarie 2012 22:31:32
Problema Submultimi Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cstdio>
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;

int k,v[30],n;
vector<string> m[30];

void f(int poz)
{
	int i;
	if(poz>k)
	{
		string x;
	//	for(i=1;i<=k;i++) cout<<v[i]<<" ";	
	//	cout<<endl;
		for(i=1;i<=k;i++)
		{
			//cout<<v[i]<<" ";
			int nr=v[i],inv=0;
			while(nr)
			{
				inv=inv*10+nr%10;
				nr/=10; 
			}
			while(inv)
			{
				x.push_back(inv%10+'0'); 
				inv/=10;
			}
			x.push_back(' '); 
		}
		m[v[1]].push_back(x);
		
		x.clear();
		
		return;
	}
	for(i=v[poz-1]+1;i<=n;i++)
	{
		v[poz]=i;
		f(poz+1);
	}

}



int main()
{
	freopen("submultimi.in","r", stdin);
	freopen("submultimi.out","w", stdout);
	scanf("%d",&n);
	for(k=1;k<=n;k++) f(1);
	for(int i=1;i<=n;i++)
	{
		sort(m[i].begin(),m[i].end());
		for(unsigned int j=0;j<m[i].size();j++) cout<<m[i][j]<<"\n";
		// cout<<endl;
		
		
	}

	return 0;
}