Cod sursa(job #2843725)

Utilizator db_123Balaban David db_123 Data 2 februarie 2022 20:34:39
Problema Cutii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream cin("cutii.in");
ofstream cout("cutii.out");

struct Cutie
{
	int x;
	int y;
	int z;
	int nrCutiiCarePotIntra;

	bool operator< (const Cutie& other) const
	{
		return (
                this->x < other.x &&
                this->y < other.y &&
                this->z < other.z) ||
                (
                (this->x+this->y+this->z)/3 < (other.x + other.y + other.z) / 3);
	}
};

int n, t, i;
vector<vector<Cutie>> cutii;

int dp(int currentIndex)
{
    /// base case
	if (currentIndex == 0)
		return 0;

    /// rec case
	if (cutii[i][currentIndex-1] < cutii[i][currentIndex])
		cutii[i][currentIndex].nrCutiiCarePotIntra = dp(currentIndex - 1)+1;
	else
        cutii[i][currentIndex].nrCutiiCarePotIntra = 0;

	return cutii[i][currentIndex].nrCutiiCarePotIntra;
}

int main()
{
	cin >> n >> t;
	cutii = vector<vector<Cutie>>(t,vector<Cutie>(n));
	for (i = 0; i < t; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cin >> cutii[i][j].x >> cutii[i][j].y >> cutii[i][j].z;
		}
		sort(cutii[i].begin(), cutii[i].end());
		cout << dp(n-1)+1 << '\n';
	}
	return 0;
}