Pagini recente » Cod sursa (job #2837231) | Cod sursa (job #2389305) | Cod sursa (job #726299) | Cod sursa (job #2443347) | Cod sursa (job #114088)
Cod sursa(job #114088)
#include <stdio.h>
#define MAX 1000001
long int v[130],n=0;
char x[MAX];
int i;
char c;
int ok=0;
void back(long int k){
char i;
if (k==n+1){
FILE *g = fopen("ordine.out","w");
for (i=1;i<k;i++)
fprintf(g,"%c",(char)x[i]);
fclose(g);
ok=1;
}
if (ok==1)
return;
for (i='a';i<='z';i++) {
if (v[i]!=0) {
if (k==1) {
v[i]--;
x[k]=i;
back(k+1);
v[i]++;
} else if (x[k-1]!=i){
v[i]--;
x[k]=i;
back(k+1);
v[i]++;
}
}
}
}
void main(){
for (i='a';i<='z';i++)
v[i]=0;
FILE *f = fopen("ordine.in","r");
while (!feof(f)) {
fscanf(f,"%c",&c);
if ((c>='a')&&(c<='z')) {
v[c]++;
n++;
}
}
fclose(f);
ok=0;
back(1);
}