Cod sursa(job #315911)

Utilizator GulosSerban Petrescu Gulos Data 17 mai 2009 16:52:15
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include<iostream>
#include<fstream>

using namespace std;

struct coord{
	int x,y,z;
}aux,co[3500];

void quicksort (int lo, int hi)
{
    int i=lo, j=hi,m;
	m=(lo+hi)/2;
    do
    {    
        while (co[i].x<co[m].x){ 
			i++; 
			if (co[i].x==co[m].x){
				if (!((co[i].y)<(co[m].y))&&!((co[i].z)<(co[m].z)))
					aux=co[i]; co[i]=co[m]; co[m]=aux;
			}
		}
        while (co[j].x>co[m].x){ 
			j--;
			if (co[j].x==co[m].x){
				if (!(co[j].y<co[m].y)&&!(co[j].z<co[m].z))
					aux=co[j]; co[j]=co[m]; co[m]=aux;
			}
		}
        if (i<=j)
        {
            aux=co[i]; co[i]=co[j]; co[j]=aux;
            i++; j--;
        }
    } while (i<=j);

    if (lo<j) quicksort(lo, j);
    if (i<hi) quicksort(i, hi);
}

int main(){
	ifstream fin("cutii.in");
	ofstream fout("cutii.out");
	int t,n,c,i,j;
	fin>>n>>t;
	for (i=0;i<t;i++){
		for (j=0;j<n;j++){
			fin>>co[j].x>>co[j].y>>co[j].z;
		}
		quicksort(0,n-1);
		c=1;aux=co[n-1];
		for (j=n-2;j>=0;j--)
			if (aux.x>co[j].x)
				if (aux.y>co[j].y)
					if (aux.z>co[j].z){
						c++;
						aux=co[j];
					}
		fout<<c<<'\n';
	}
	fout.close();
}