Pagini recente » Cod sursa (job #162901) | Cod sursa (job #2822630) | Cod sursa (job #2166178) | Cod sursa (job #1192836) | Cod sursa (job #366518)
Cod sursa(job #366518)
/*
* File: main.cpp
* Author: virtualdemon
*
* Created on November 22, 2009, 8:38 AM
*/
#include <fstream>
#include <cstdlib>
#include <iterator>
#include <algorithm>
/*
*
*/
using namespace std;
int main(int argc, char** argv)
{int n, m, i, k;
int *s;
ifstream in("combinari.in");
in>>n>>m;
if( m > n )
{ofstream out("combinari.out");
out<<"Error: Invalid n: "<<n<<" and m:"<<m;
return 1;
}
s=(int*)calloc( m, sizeof(int) );
if( n == m )
{ofstream out("combinari.out");
for( i=1; i <= n; ++i )
out<<i<<' ';
return EXIT_SUCCESS;
}
if( 1 == m )
{ofstream out("combinari.out");
for( i=1; i <= n; ++i )
out<<i<<'\n';
return EXIT_SUCCESS;
}
ofstream out("combinari.out");
k=0;
do
{
if( 0 == k )
{
s[k]+=1;
if( s[k] > n )
break;
}
else {
if( s[k] )
s[k]+=1;
else s[k]=s[k-1]+1;
if( s[k] > n )
{
s[k]=0;
--k;
continue;
}
}
if( k == m-1 )
{
for( i=0; i <= k; ++i )
out<<s[i]<<' ';
out<<'\n';
}
else ++k;
}while( k >= 0 );
free(s);
return (EXIT_SUCCESS);
}