#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class book {
private:
int y, m, d;
public:
book(int y_, int m_, int d_) {
y = y_;
m = m_;
d = d_;
}
int getY(){ return y; };
int getM(){ return m; };
int getD(){ return d; };
};
// true если a<b иначе false(a>b,a>=b)
bool comp(book a, book b) {
if (a.getY() < b.getY()) {
return true;
}
else if (a.getY() > b.getY()) {
return false;
}
else if (a.getM() < b.getM()) {
return true;
}
else if (a.getM() > b.getM()) {
return false;
}
else if (a.getD() > b.getD()) {
return false;
}
else if (a.getD() < b.getD()) {
return true;
}
else {
return false;
}
}
int main()
{
book b1(2020, 01, 10);
book b2(2020, 02, 12);
book b3(2010, 01, 10);
book b4(2010, 01, 10);
vector<book> v1{ b1, b2, b3, b4 };
// сортировка
sort(v1.begin(), v1.end(), comp);
// вывод
for (auto i : v1) {
cout << i.getD() << ':' << i.getM() << ':' << i.getY() << '\n';
};
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIGJvb2sgewpwcml2YXRlOgoJaW50IHksIG0sIGQ7CnB1YmxpYzoKCWJvb2soaW50IHlfLCBpbnQgbV8sIGludCBkXykgewoJCXkgPSB5XzsKCQltID0gbV87CgkJZCA9IGRfOwoJfQoJaW50IGdldFkoKXsgcmV0dXJuIHk7IH07CglpbnQgZ2V0TSgpeyByZXR1cm4gbTsgfTsKCWludCBnZXREKCl7IHJldHVybiBkOyB9Owp9OwoKLy8gdHJ1ZSDQtdGB0LvQuCBhPGIg0LjQvdCw0YfQtSBmYWxzZShhPmIsYT49YikKYm9vbCBjb21wKGJvb2sgYSwgYm9vayBiKSB7CglpZiAoYS5nZXRZKCkgPCBiLmdldFkoKSkgewoJCXJldHVybiB0cnVlOwoJfQoJZWxzZSBpZiAoYS5nZXRZKCkgPiBiLmdldFkoKSkgewoJCXJldHVybiBmYWxzZTsKCX0KCWVsc2UgaWYgKGEuZ2V0TSgpIDwgYi5nZXRNKCkpIHsKCQlyZXR1cm4gdHJ1ZTsKCX0KCWVsc2UgaWYgKGEuZ2V0TSgpID4gYi5nZXRNKCkpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgllbHNlIGlmIChhLmdldEQoKSA+IGIuZ2V0RCgpKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJZWxzZSBpZiAoYS5nZXREKCkgPCBiLmdldEQoKSkgewoJCXJldHVybiB0cnVlOwoJfQoJZWxzZSB7CgkJcmV0dXJuIGZhbHNlOwoJfQp9CgppbnQgbWFpbigpCnsKCWJvb2sgYjEoMjAyMCwgMDEsIDEwKTsKCWJvb2sgYjIoMjAyMCwgMDIsIDEyKTsKCWJvb2sgYjMoMjAxMCwgMDEsIDEwKTsKCWJvb2sgYjQoMjAxMCwgMDEsIDEwKTsKCgl2ZWN0b3I8Ym9vaz4gdjF7IGIxLCBiMiwgYjMsIGI0IH07CgoJLy8g0YHQvtGA0YLQuNGA0L7QstC60LAKCXNvcnQodjEuYmVnaW4oKSwgdjEuZW5kKCksIGNvbXApOwoJCgkvLyDQstGL0LLQvtC0Cglmb3IgKGF1dG8gaSA6IHYxKSB7CgkJY291dCA8PCBpLmdldEQoKSA8PCAnOicgPDwgaS5nZXRNKCkgPDwgJzonIDw8IGkuZ2V0WSgpIDw8ICdcbic7Cgl9Owp9