Cod sursa(job #1656196)

Utilizator Athena99Anghel Anca Athena99 Data 18 martie 2016 21:46:51
Problema Cutii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <fstream>
#include <string>

using namespace std;

ifstream fin("cutii.in");
ofstream fout("cutii.out");

const int nmax= 3500;

int x[nmax+1], y[nmax+1], d[nmax+1];

string buffer;
string::iterator buffer_it;

void read_int_nn( int &x ) {
    for ( ; *buffer_it>'9' || *buffer_it<'0'; ++buffer_it ) ;
    for ( x= 0; *buffer_it<='9' && *buffer_it>='0'; ++buffer_it ) {
        x= x*10+*buffer_it-'0';
    }
}

int main(  ) {
    getline ( fin, buffer, (char)0 );
    buffer_it= buffer.begin();

    int n, t;
    read_int_nn(n), read_int_nn(t);
    for ( int cnt= 1; cnt<=t; ++cnt ) {
        for ( int i= 1; i<=n; ++i ) {
            int a, b, c;
            read_int_nn(a), read_int_nn(b), read_int_nn(c);
            x[a]= b, y[a]= c;
        }

        int sol= 0;
        d[1]= 1;
        for ( int i= 2; i<=n; ++i ) {
            d[i]= 1;
            for ( int j= 1; j<=i-1; ++j ) {
                if ( x[i]>x[j] && y[i]>y[j] ) {
                    d[i]= max(d[i], d[j]+1);
                    sol= max(sol, d[i]);
                }
            }
        }

        fout<<sol<<"\n";
    }

    return 0;
}