#include #include #include using namespace std; struct Room { int size; bool is_busy; }; struct Hotel { int rooms_amount; Room* rooms = new Room[rooms_amount]; int get_filled_percentage() { int sum = 0; for(int i = 0; i < rooms_amount; i++) { if(rooms[i].is_busy) sum += 1; } return (sum / (float)rooms_amount) * 100; } }; int main() { ifstream input; input.open("input.txt"); int hotel_amount, all_percentage = 0; input >> hotel_amount; Hotel arr[hotel_amount]; // массив отелей for(int i = 0; i < hotel_amount; i++) // для кажного отеля { int rooms_amount; input >> rooms_amount; // читаем количество комнат Hotel hotel = {rooms_amount}; // создаем отель с таким количеством комнат for(int j = 0; j < rooms_amount; j++) // читаем каждую комнату и записываем значения в структуру input >> hotel.rooms[j].size >> hotel.rooms[j].is_busy; arr[i] = hotel; // записываем его в массив отелей all_percentage += hotel.get_filled_percentage(); // общий процент занятых комнат во всех отелях } input.close(); int average_percentage = all_percentage / (float)hotel_amount; // средний процент занятых комнат ofstream output; output.open("output.txt"); vector result; for(int i = 0; i < hotel_amount; i++) if(arr[i].get_filled_percentage() >= average_percentage) result.push_back(arr[i]); // записываем в окончательный массив отель, который подходит по параматрам output << result.size() << "\n"; // в файл записываем количество подходящих отелей for(int i = 0; i < result.size(); i++) // в файл записываем информацию об отеле { output << result[i].rooms_amount << "\n"; for(int j = 0; j < result[i].rooms_amount; j++) output << result[i].rooms[j].size << " " << result[i].rooms[j].is_busy << "\n"; } return 0; }