Pagini recente » Cod sursa (job #1458445) | Cod sursa (job #1892760) | Cod sursa (job #386726) | Cod sursa (job #1049200) | Cod sursa (job #1341439)
#include <fstream>
#include <list>
#include <deque>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
int fv[3501],viz[3501],nr,Max,n,i,j,k,t;
struct coce{int x,y,z;} v[3501];
list<int> l[3501];
void bf(int i)
{
deque<int> f;
f.push_back(i);
viz[i]=1;
while (f.empty()==false)
{
for ( list<int>::iterator c = l[f.front()].begin(); c != l[f.front()].end(); c ++ )
{
if (viz[*c]<viz[f.front()]+1)
{
viz[*c]=viz[f.front()]+1;
f.push_back(*c);
if (viz[*c]>Max)
Max=viz[*c];
}
}
f.pop_front();
}
}
void reset()
{
for (int i=1;i<=n;i++)
{
while (l[i].empty() == false)
l[i].pop_back();
viz[i]=0;
fv[i]=0;
}
Max=0;
}
int main()
{
fin>>n>>t;
for (k=1;k<=t;k++)
{
for (i=1;i<=n;i++)
fin>>v[i].x>>v[i].y>>v[i].z;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (i!=j)
{
if (v[i].x<v[j].x&&v[i].y<v[j].y&&v[i].z<v[j].z)
l[j].push_back(i),fv[i]=1;
else if (v[i].x>v[j].x&&v[i].y>v[j].y&&v[i].z>v[j].z)
l[i].push_back(j),fv[j]=1;
}
for (i=1;i<=n;i++)
if (fv[i]==0)
bf(i);
fout<<Max<<"\n";
reset();
}
return 0;
}