Pagini recente » Cod sursa (job #2222374) | Cod sursa (job #1513268) | Cod sursa (job #1033612) | Cod sursa (job #940034) | Cod sursa (job #1932971)
#include <bits/stdc++.h>
using namespace std;
ifstream f("permutari.in");
bool folosit[9];
int permutare[9],n;
class Writer {
public:
Writer(const char *name):
m_stream(name) {
memset(m_buffer, 0, sizeof(m_buffer));
m_pos = 0;
}
Writer& operator<<(int a) {
int many = 0;
do {
digit_buffer[many++] = a % 10 + '0';
a /= 10;
} while (a > 0);
for (int i = many - 1; i >= 0; --i)
putchar(digit_buffer[i]);
return *this;
}
Writer& operator<<(const char *s) {
for (; *s; ++s)
putchar(*s);
return *this;
}
~Writer() {
m_stream.write(m_buffer, m_pos);
}
private:
void putchar(char c) {
m_buffer[m_pos++] = c;
if (m_pos == kBufferSize) {
m_stream.write(m_buffer, m_pos);
m_pos = 0;
}
}
static const int kBufferSize = 32768;
ofstream m_stream;
char m_buffer[kBufferSize];
char digit_buffer[30];
int m_pos;
} g("permutari.out");
void perm(int poz){
if(poz==n+1){
for(int i=1;i<=n;i++)g<<permutare[i]<<" ";
g<<"\n";
return;
}
for(int i=1;i<=n;i++){
if(!folosit[i]){
folosit[i]=1;
permutare[poz]=i;
perm(poz+1);
folosit[i]=0;
}
}
}
int main()
{
f>>n;
perm(1);
return 0;
}