Am nevoie doar la cerința 2.
Răspunsuri la întrebare
SOLUTIE:
#include<fstream>
using namespace std;
int main() {
int c, n;
ifstream fin("cartonase.in");
ofstream fout("cartonase.out");
int k = 0, xx, yy, x, y, l = 1, lmax = 1;
fin >> n;
fin >> xx >> yy;
for (int i = 2; i <= n; i++) {
fin >> x >> y;
if (yy == x) {
l++;
if (l > lmax)
lmax = l;
}
else
l = 1;
xx = x;
yy = y;
}
fout << lmax;
return 0;
}
EXPLICATIE:
Avem o variabila contor, l, ce va memora numarul de cartonase. Cand ultimul capatat al cartonasului anterior (yy) este egal cu primul capat al cartonasului curent citit (x) vom aduna 1 la numarul de cartonase din secventa curenta (l - lungimea secventei deasemena), apoi comparam daca lungimea curenta/numarul de cartonase curent este mai mare decat numarul de cartonase maxim/lungimea maxima curenta, iar in caz afirmativ salvam valoarea mai mare in lmax. In cazul in care x este diferit de yy, reinitializam contorul/numarul de cartonase cu 1.