Mai intai trebuie sa te autentifici.
Cod sursa(job #2112764)
Utilizator | Data | 23 ianuarie 2018 20:26:15 | |
---|---|---|---|
Problema | Cutii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.01 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
int n, t, maxim1, maxim2, v[3500];
struct cutie
{
int x;
int y;
int z;
} cutii[3500];
bool test(int a, int b)
{
if(cutii[a].x>cutii[b].x && cutii[a].y>cutii[b].y && cutii[a].z>cutii[b].z)
return true;
return false;
}
void rec(int a, int nr, int memo)
{
for(int i=0 ; i<n ; i++)
if(test(a,i))
if(v[i]!=0)
rec(i,nr+1,memo);
else if(maxim2<nr+v[i])
maxim2=nr+v[i];
if(maxim2>maxim1)
maxim1=maxim2;
v[memo]=maxim2;
}
int main()
{
f>>n>>t;
int x=0;
e:
for(int i=0; i<n ; i++)
f>>cutii[i].x>>cutii[i].y>>cutii[i].z;
maxim1=0;
for(int j=0; j<n ; j++)
{
maxim2=0;
rec(j,1,j);
}
g<<maxim1+1<<endl;
x++;
if(x<t)
goto e;
}