Pagini recente » Cod sursa (job #1666360) | Urmasii lui Moisil 2015, Clasament Clasa a 9-a | Cod sursa (job #1847847) | Cod sursa (job #440132) | Cod sursa (job #1385645)
/*#include <iostream>
#include <fstream>
using namespace std;
char s1[51],s2[51];
int a[51][51];
int main()
{
ifstream in("iv.in");
ofstream out("iv.out");
in>>s1>>s2;
return 0;
}*/
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
char s1[51],s2[51];
int st[52],nrpal;
bool palindrom(char s[102])
{
for(int i=0;i<strlen(s)/2;i++)
{
if(s[i]!=s[strlen(s)-i-1])
{
//cout<<"!pal";
return 0;
}
}
//cout<<"pal";
nrpal++;
return 1;
}
void afis()
{
int k=0;
int j=0;
int l=0;
char s[102];
for(int i=1; i<=strlen(s1)+strlen(s2); i++)
{
if(st[k]==i)
{
s[l]=s1[k];
k++;l++;
}
else
{
s[l]=s2[j];
j++;l++;
}
}
s[l]=0;
palindrom(s);
//cout<<" : "<<s<<endl;
}
void bkt(int p)
{
int n=strlen(s1)+strlen(s2);
for (int val=st[p-1]+1; val<=n; val++)
{
st[p]=val;
if(p==strlen(s1)-1)
afis();
else
bkt(p+1);
}
}
int main()
{
ifstream in("iv.in");
ofstream out("iv.out");
in>>s1>>s2;
if(strlen(s1)>strlen(s2))
{
char aux[51];
strcpy(aux,s1);
strcpy(s1,s2);
strcpy(s2,aux);
}
bkt(0);
out<<endl<<nrpal;
return 0;
}