Pagini recente » Cod sursa (job #296034) | Cod sursa (job #486201) | Cod sursa (job #1864771) | Cod sursa (job #1708289) | Cod sursa (job #1231105)
#include <fstream>
#include <algorithm>
#include <cstring>
#define DIM 3510
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
struct cutie {
int x;
int y;
int z;
};
int A[DIM][DIM];
int n, i, x, sol, t;
cutie v[DIM];
int cmp(const cutie &a, const cutie &b) {
return a.z<b.z;
}
int query(int x, int y) {
int r = 0;
for (;x;x-=(x&-x))
for (;y;y-=(y&-y))
r = max(r, A[x][y]);
return r;
}
int update(int x, int y, int z) {
for (;x<=n;x+=(x&-x))
for (;y<=n;y+=(y&-y))
A[x][y] = max(A[x][y], z);
}
int main() {
fin>>n>>t;
for (;t--;) {
memset(A, 0, sizeof(A));
sol = 0;
for (i=1;i<=n;i++)
fin>>v[i].x>>v[i].y>>v[i].z;
sort(v+1, v+n+1, cmp);
for (i=1;i<=n;i++){
x = 1 + query(v[i].x-1, v[i].y-1);
update(v[i].x, v[i].y, x);
sol = max(sol, x);
}
fout<<sol<<"\n";
}
return 0;
}