Pagini recente » Cod sursa (job #1653281) | Cod sursa (job #2766148) | Cod sursa (job #517532) | Cod sursa (job #1465652) | Cod sursa (job #2838729)
#include <fstream>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
using namespace std;
ifstream cin("cutii.in");
ofstream cout("cutii.out");
class Info{
public:
int x;
int y;
int z;
};
bool cmp(Info a,Info b){
return a.z<b.z;
}
int n,t;
vector<Info> v;
bool canPlaceInside(Info a,Info b){
if(a.x<b.x && a.y<b.y && a.z<b.z){
return true;
}
return false;
}
int howManyBoxes(){
vector<int> dp(n+1);
// cout<<"sortare: ";
// for(int i=1;i<=n;i++){
// cout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<"\n";
// }
// cout<<"\n\n";
for(int i=1;i<=n;i++){
dp[i]=1;
}
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++){
if(canPlaceInside(v[j],v[i])){
dp[i]=max(dp[i],dp[j]+1);
}
}
}
int rez=0;
for(int i=1;i<=n;i++){
rez=max(rez,dp[i]);
}
return rez;
}
void read(){
cin>>n>>t;
v.resize(n+1);
for(int i=1;i<=t;i++){
// v.clear();
for(int j=1;j<=n;j++){
cin>>v[j].x>>v[j].y>>v[j].z;
}
sort(v.begin()+1,v.end(),cmp);
cout<<howManyBoxes()<<'\n';
}
}
int main() {
read();
return 0;
}