Cod sursa(job #612158)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 6 septembrie 2011 10:50:44
Problema Iv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <string.h>
using namespace std;

ifstream fi("iv.in");
ofstream fo("iv.out");

int LA, LB, C;
char A[505], B[505];

void back (int ap, int au, int bp, int bu)
{
	if ((au - ap) + (bu - bp) < 0)
	{
		C++;
		return;
	}
	
	if (ap < au && A[ap] == A[au])
		back (ap+1, au-1, bp, bu);
	if (ap <= au && bp <= bu && A[ap] == B[bu])
		back (ap+1, au, bp, bu-1);
	if (bp <= bu && ap <= au && B[bp] == A[au])
		back (ap, au-1, bp+1, bu);
	if (bp < bu && B[bp] == B[bu])
		back (ap, au, bp+1, bu-1);
}

int main ()
{
	fi >> A >> B;
	
	LA = strlen (A);
	LB = strlen (B);
	
	back (0, LA-1, 0, LB-1);
	
	fo << C << '\n';
	
	return 0;
}