[语言月赛 202408] 蓝色的网易云

[语言月赛 202408] 蓝色的网易云

题目背景

你也在听吗
落单的孩子啊
别害怕 别害怕
黑夜不会太长
悬崖上的花
让我为你摘下
数一瓣 落一瓣
就少一朵忧伤

题目描述

风的歌单中共有 n n n 首歌,这些歌曲可以根据题材分为 m m m 类,第 i i i 首歌的题材为 c i c_i ci。风并不偏好任何一种题材,因此歌单中各题材的歌曲数量相同。

现在,请你给出一个歌曲播放顺序,使得相邻播放的歌曲题材不相同。

输入格式

第一行为两个整数 n , m n,m n,m

第二行为 n n n 个整数,第 i i i 个为 c i c_i ci

输出格式

输出 n n n 行,每行一个整数,从上至下表示歌曲播放顺序。

符合题意的答案可能有多种,你只需要输出其中任意一种即可。

样例 #1

样例输入 #1

6 3
1 1 2 2 3 3

样例输出 #1

1
3
5
2
4
6

提示

对于 30 % 30\% 30% 的测试数据, n = m n=m n=m
对于 100 % 100\% 100% 的测试数据, 1 ≤ n ≤ 1 0 3 1 \le n \le 10^3 1n103 2 ≤ m ≤ 1 0 3 2 \le m \le 10^3 2m103 n n n m m m 的倍数, 1 ≤ c i ≤ m 1 \le c_i \le m 1cim

#include <bits/stdc++.h>

using namespace std;
int n,m,num;
int c[1005][1005];

int main() {
	scanf("%d %d",&n,&m);
	num=n;
	for(int i=0; i<n; i++) {
		int ind;
		scanf("%d",&ind);
		c[ind][i]++;
	}
	while(num) {
		int ij=0;
		for(int i=0; i<n; i++) {
			for(int j=1; j<=m; j++) {
				if(c[j][i]&&ij!=j) {
					printf("%d",i+1);
					puts("");
					c[j][i]--;
					num--;
					ij=j;
				}
			}
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值