Cod sursa(job #98331)

Utilizator algoritmarOvidiu Andrei algoritmar Data 10 noiembrie 2007 12:38:09
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Happy Coding 2007 Marime 0.95 kb
#include <fstream>

using namespace std;

#define FIN "abc2_02.in"
#define FOUT "abc2.out"

char a[100],b[100][100];
int c,k,r,poz[100];
int main()
{
	int ok, ok2,flag = 1, l = 0;
	ifstream fin(FIN);
	ofstream fout(FOUT);

	fin >> a;
	
	for(int i = 0; !fin.eof(); ++i){
		fin >> b[i];
		ok = ok2 =  1,r = k = l = 0;
		for(int j = 0; j < i; ++j )
			if(strcmp(b[j],b[i]) == 0){
				flag = 0;
				break;
			}
			else
				flag = 1;
		if(flag)	
			for(j = 0; j < strlen(a);++j)
			{
				for(int p = 0; p < r; ++p)
					if(poz[p] == j || j < poz[r]){
						ok2 = 0;break;
					}
					else if(p == r-1)
						ok2 = 1;
			
				if(ok2){
					if(a[j] == b[i][l]){
						if(ok)
							poz[r] = j,ok = 0;
						++k,++l;
					}
					else
						k = 0,l = 0,ok = 1;
					if(k == strlen(b[i]))
						++c,l = j = 0,++r,ok = 1;
				}		
			}
		for(int p = 0; p <= r; ++p)
			poz[p] = 0;
	}

	fout << c << std::endl;
	return 0;
}