最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- Sherlock and His Girlfriend

C++ 少儿编程 999浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

原题来自:Codeforces Round #400 B.

Sherlock 有了一个新女友(这太不像他了!)。情人节到了,他想送给女友一些珠宝当做礼物。

他买了 $n$ 件珠宝。第 $i$ 件的价值是 $i+1$。那就是说,珠宝的价值分别为 $2,3,4,cdots ,n+1$。

Watson 挑战 Sherlock,让他给这些珠宝染色,使得一件珠宝的价格是另一件的质因子时,两件珠宝的颜色不同。并且,Watson 要求他最小化颜色的使用数。

请帮助 Sherlock 完成这个简单的任务。

【输入】

只有一行一个整数 $n$,表示珠宝件数。

【输出】

第一行一个整数 $k$,表示最少的染色数;

第二行 $n$ 个整数,表示第 $1$ 到第 $n$ 件珠宝被染成的颜色。若有多种答案,输出任意一种。

【输入样例】

3

【输出样例】

2
1 1 2

【提示】

样例输入 2

4

样例输出 2

2
2 1 1 2

样例说明

因为 $2$ 是 $4$ 的一个质因子,因此第一件珠宝与第三件珠宝的颜色必须不同。

数据范围与提示:

对于全部数据,$1≤n≤10^5$ 。

您必须 登录 才能发表评论!