#include <iostream>
#include <fstream>
#include <vector>
struct Settler {
int type; // Maybe some of those should be unsigned, but I just left them as you already had them
int player;
int x;
int y;
int health;
};
std::istream& operator>>(std::istream& in, Settler& settler) {
// Just read the values in the corresponding fields of Settler
return in >> settler.type >> settler.player >> settler.x >> settler.y >> settler.health;
}
std::ostream& operator<<(std::ostream& out, Settler const& settler) {
out << "Type: " << settler.type << "\n";
out << "Player: " << settler.player << "\n";
out << "X:" << settler.x << "\n";
out << "Y:" << settler.y << "\n";
return out << "Health:" << settler.health << "\n";
}
int main() {
Settler current;
std::vector<Settler> settlers;
while(std::cin >> current) { // Read as long as it's possible to read a Settler
settlers.push_back(current);
}
// For demo, print out all settlers
for(std::size_t i = 0; i < settlers.size(); ++i) { // In C++11, we could use for each syntax here
std::cout << settlers[i];
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KCnN0cnVjdCBTZXR0bGVyIHsKICBpbnQgdHlwZTsgICAgIC8vIE1heWJlIHNvbWUgb2YgdGhvc2Ugc2hvdWxkIGJlIHVuc2lnbmVkLCBidXQgSSBqdXN0IGxlZnQgdGhlbSBhcyB5b3UgYWxyZWFkeSBoYWQgdGhlbQogIGludCBwbGF5ZXI7CiAgaW50IHg7CiAgaW50IHk7CiAgaW50IGhlYWx0aDsKfTsKCnN0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mIGluLCBTZXR0bGVyJiBzZXR0bGVyKSB7CiAgLy8gSnVzdCByZWFkIHRoZSB2YWx1ZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzIG9mIFNldHRsZXIKICByZXR1cm4gaW4gPj4gc2V0dGxlci50eXBlID4+IHNldHRsZXIucGxheWVyID4+IHNldHRsZXIueCA+PiBzZXR0bGVyLnkgPj4gc2V0dGxlci5oZWFsdGg7Cn0KCnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG91dCwgU2V0dGxlciBjb25zdCYgc2V0dGxlcikgewogIG91dCA8PCAiVHlwZTogIiA8PCBzZXR0bGVyLnR5cGUgPDwgIlxuIjsKICBvdXQgPDwgIlBsYXllcjogIiA8PCBzZXR0bGVyLnBsYXllciA8PCAiXG4iOwogIG91dCA8PCAiWDoiIDw8IHNldHRsZXIueCA8PCAiXG4iOwogIG91dCA8PCAiWToiIDw8IHNldHRsZXIueSA8PCAiXG4iOwogIHJldHVybiBvdXQgPDwgIkhlYWx0aDoiIDw8IHNldHRsZXIuaGVhbHRoIDw8ICJcbiI7Cn0KCmludCBtYWluKCkgewogIFNldHRsZXIgY3VycmVudDsKICBzdGQ6OnZlY3RvcjxTZXR0bGVyPiBzZXR0bGVyczsKICB3aGlsZShzdGQ6OmNpbiA+PiBjdXJyZW50KSB7IC8vIFJlYWQgYXMgbG9uZyBhcyBpdCdzIHBvc3NpYmxlIHRvIHJlYWQgYSBTZXR0bGVyCiAgICBzZXR0bGVycy5wdXNoX2JhY2soY3VycmVudCk7CiAgfQogIAogIC8vIEZvciBkZW1vLCBwcmludCBvdXQgYWxsIHNldHRsZXJzCiAgZm9yKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2V0dGxlcnMuc2l6ZSgpOyArK2kpIHsgLy8gSW4gQysrMTEsIHdlIGNvdWxkIHVzZSBmb3IgZWFjaCBzeW50YXggaGVyZQogICAgc3RkOjpjb3V0IDw8IHNldHRsZXJzW2ldOwogIH0KfQ==