Cod sursa(job #133434)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 8 februarie 2008 17:27:57
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream.h>
#include <iostream.h>

struct cutie {int x,y,z;};

int bigger(cutie a, cutie b)
{
   if((a.x>b.x)&&(a.y>b.y)&&(a.z>b.z)) return 1;
   return 0;
}

int smaller(cutie a, cutie b)
{
   if((a.x<b.x)&&(a.y<b.y)&&(a.z<b.z)) return 1;
   return 0;
}

int main()
{

   cutie c[3500], cm, ct;

   int a,i,j,x;
   long n,t,nr,n2;

   ifstream fin("cutii.in");
   ofstream fout("cutii.out");

   fin>>n>>t;

   for(a=1;a<=t;a++)  // executa de t ori actiunea
   {
      nr=0;  //Initializez contorul nr
      for(i=1;i<=n;i++) fin>>c[i].x>>c[i].y>>c[i].z;  //citesc cutiile

      //Initializez cutia maxima all-time
      cm.x=0;cm.y=0;cm.z=0;
      n2=n;
      while(n2)
      {
	 cm=ct;
	 //Afla cutia maxima temporara
	 ct.x=0; ct.y=0; ct.z=0;
	 for(i=1;i<=n2;i++)
	    if (bigger(c[i],ct))
	       { ct=c[i]; x=i;}

	 if (smaller(ct,cm)) {nr++; cm=ct;}

	 for(j=x;j<=n2-1;j++) c[j]=c[j+1];
	 n2--;
      }

      fout<<nr+1<<endl;
   }

   fin.close();
   fout.close();

   return 0;

}