#include #include #include using namespace std;

int main() { int n, m; cin >> n >> m;

vector<int> rooms(m, 0); // 存储每个房间的人数
vector<int> anger(n, 0); // 存储每个客人的愤怒值

for (int i = 0; i < n; i++) {
    int room;
    cin >> room;
    rooms[room - 1]++; // 将客人分配到对应房间,并增加房间的人数
}

int total_anger = 0;
for (int i = 0; i < m; i++) {
    int left_room = i;
    int right_room = (i + 1) % m;
    int curr_anger = 0;

    // 计算当前房间与相邻房间的愤怒值之和
    curr_anger = rooms[left_room] + rooms[right_room];

    // 更新总愤怒值
    total_anger += curr_anger;

    // 更新相邻房间的人数
    rooms[left_room] = 0;
    rooms[right_room] = 0;
}

cout << total_anger << endl;

return 0;

}

CC Hotel 客房分配 - 最小愤怒值算法

原文地址: https://www.cveoy.top/t/topic/qvUV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录