Pagini recente » Cod sursa (job #2867390) | Cod sursa (job #944062) | Cod sursa (job #1668557) | Cod sursa (job #799742) | Cod sursa (job #726665)
Cod sursa(job #726665)
#include <fstream>
#include <algorithm>
#include <vector>
#define M 25
#define N 15
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
vector<int> C[M],A[M],B[M];
int m,n,i,j,d,Depth[M],ANS=0,PANS;
bool Included(int In,int Out)
{
for (unsigned int i=0; i<C[In].size(); i++)
if (C[In][i]>=C[Out][i]) return false;
return true;
}
void DF(int Node,int Lev)
{
if (Lev>Depth[Node]) Depth[Node]=Lev;
for (unsigned int i=0; i<A[Node].size(); i++)
DF(A[Node][i],Lev+1);
if (Depth[Node]>ANS) ANS=Depth[Node],PANS=Node;
return;
}
int main()
{
for (f >> n >> t;t;--t) {
for (i=1; i<=n; i++)
{
A[i].clear();
C[i].clear();
f >> d;
C[i].push_back(d);
f >> d;
C[i].push_back(d);
f >> d;
C[i].push_back(d);
}
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
if (i!=j && Included(i,j))
A[j].push_back(i);
ANS=0;
for (i=1; i<=n; i++)
DF(i,1);
g << ANS << '\n';
}
f.close();
g.close();
return 0;
}