Pagini recente » Cod sursa (job #2648865) | Cod sursa (job #2612558) | Cod sursa (job #1272515) | Cod sursa (job #457010) | Cod sursa (job #25537)
Cod sursa(job #25537)
#include <fstream.h>
char alfabet[27]="abcdefghijklmnopqrstuvwxyz";
int cont=0,n,k,p;
int st[20],sem;
ofstream g("expresii2.out");
char ty[20];
int valid(int p){
int d;
if(p==1){ if(st[p]==k||st[p]==k+1||st[p]==k+2) return 0;
else return 1; }
/*else{
for(int i=1;i<=p;i++) if(st[i]==k||st[i]==k+1||st[i]==k+2) d++;
if(d>p/2) return 0;
} */
}
int final(int p){
int i;
if(p==n){
int d=0;
for(i=1;i<=n;i++) if(st[i]==k||st[i]==k+1||st[i]==k+2) d++;
int y=n-d;
if(y==d||y==d+1){ sem=0; return 1; }
sem=1; return 1;
}
return 0;
}
void back(){
p=1;
st[p]=-1;
while(p>0){
if(st[p]<k+3){
st[p]++;
if(valid(p)){ if(final(p)){ if(!sem){
if(r==cont+1) for(int i=1;i<=n;i++) ty[i-1]==alfabet[st[i]];
cont++; } }
else{ p++; st[p]=-1; }
}
}
else p--;
}
}
int main(){
ifstream f("expresii2.in");
f>>n>>k>>p;
f.close();
alfabet[k]='+'; alfabet[k+1]='*'; alfabet[k+2]='!'; alfabet[k+3]=NULL;
back();
//ofstream g("expresii2.out");
g<<cont<<'\n'<<ty;
return 0;
}