Pagini recente » Cod sursa (job #1781111) | Cod sursa (job #3182633) | Cod sursa (job #917268) | Cod sursa (job #3168142) | Cod sursa (job #2508708)
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
tuple <int,int,int> cutie;
set < tuple<int,int,int> > s;
int n,q,i,a,b,c;
int aib[3505][3505];
void update(int y, int Z,int maxx){
for(; y<=n; y+=(y&-y))
for(int z=Z; z<=n; z+=(z&-z))
aib[y][z]=max(aib[y][z],maxx);
}
int query(int y, int Z){
int r=0;
for(; y; y-=(y&-y))
for(int z=Z; z; z-=(z&-z))
r=max(r,aib[y][z]);
return r;
}
int main()
{
fin>>n>>q;
for(;q;q--){
s.clear();
for(i=1;i<=n;i++){
fin>>a>>b>>c;
s.insert(make_tuple(a,b,c));
}
int sol=-1;
for(auto it: s){
int x=query(get<0>(it),get<1>(it));
sol=max(sol,x+1);
update(get<0>(it),get<1>(it),x+1);
}
fout<<sol<<"\n";
memset(aib,0,sizeof(aib));
}
}