Cod sursa(job #11722)

Utilizator pocaituDavid si Goliat pocaitu Data 1 februarie 2007 14:55:17
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
#include<fstream.h>
#include<string.h>
int long n,i,j,vect[22][2],nr,d,k,nr_c,c[2],max;
char pl[22],cantaret[200][22],s[22][220];
int main()
{ifstream f("festival.in");
 //f>>n;
 //f.getline(s,100);
 n=20;
 strcpy(s[1],"syd barrett,roger waters,nick mason,richard,wright,a");
 strcpy(s[2],"yd barrett,roger aters,nick ason,ichard wright,b");
 strcpy(s[3],"sd barrett,rger waters,nck mason,rchard wight,c");
 strcpy(s[4],"ian gllan,richie blamore,ian pace,jn lor,rogr glver");
 strcpy(s[5],"ian giln,ritie blamore,ianaice,jnlor,ogerover");
 strcpy(s[6],"robert fripp,john wetton,bill ford,dan,can");
 strcpy(s[7],"robe fripp,johnetton,bi ford,an,an");
 strcpy(s[7],"ab,bc,cs,ds,sa");
 strcpy(s[8],"ac,ad,as,af,ag");
 strcpy(s[9],"sd,sf,sg,sh,sj");
 strcpy(s[10],"qw,qe,qr,qt,qi");
 strcpy(s[11],"qy,qz,qx,qc,qu");
 strcpy(s[12],"uy,uz,ux,uc,uu");
 strcpy(s[13],"iy,iz,ix,ic,iu");
strcpy(s[14],"oy,oz,ox,oc,ou");
strcpy(s[15],"py,pz,px,pc,pu");
strcpy(s[16],"fy,fz,fx,fc,fu");
strcpy(s[17],"hy,hz,hx,hc,hu");
strcpy(s[18],"ly,lz,lx,lc,lu");
strcpy(s[19],"vy,vz,vx,vc,ouv");
strcpy(s[20],"by,bz,bx,bc,bu");








 for(i=1;i<=n;i++)
  {//f.getline(s,1000);
   /**/
   for(j=0;j<strlen(s[i]);j++)
	{for(k=0;k+j<strlen(s[i])&&s[i][k+j]!=',';k++)
	   pl[k]=s[i][k+j];
	 j=k+j;
	 pl[k]=NULL;
	 for(k=1,d=0;k<=nr_c;k++)
	   if(!strcmp(pl,cantaret[k]))
		  {d=1;break;}

	 if(d==0)
	   {strcpy(cantaret[++nr_c],pl);
		if(nr_c>50)
		  vect[i][1]+=(1<<nr_c);
		else
		  vect[i][0]+=(1<<nr_c);
	   }
	 else
	  {if(k>50)
		  vect[i][1]+=(1<<k);
		else
		  vect[i][0]+=(1<<k);
	  }
	 }
   }
  for(i=1;i<(1<<n);i++)
   {c[0]=c[1]=0;
	for(j=0,nr=0;j<n;j++)
	  if(i&(1<<j))
		{
		if(!(c[0]&vect[j+1][0]))
		  c[0]|=vect[j+1][0];
		else break;
		if(!(c[1]&vect[j+1][1]))
		  c[1]|=vect[j+1][1];
		else break;
		nr++;
		}
	if(nr>max&&j==n)
	 max=nr;
	}
   ofstream g("festival.out");
   g<<max;
   g.close();
   return 0;
   }