大力水手最近和他的女朋友奥利弗分手了,他感到人生非常灰暗,于是上山来找禅师解惑。
大力水手问禅师:“大师,奥利弗以前经常说我是个笨蛋,让我觉得很生气。大概是因为我真的太笨了她才这么说吧。请问,怎样才能提高智商?”
禅师浅笑,答:“方法很简单,不过若想我教你,你先看看这张试卷。”
大力水手拿到试卷,共有 n 道选择题,编号为 1 到 n 。第 i 道题形如:( hi 为 “A” 或 “B” 或 “C” 或 “D”, ai,bi,ci,di 都是整数)
-
i . 编号小于 i 的题目中你一共选了几个 hi ?
- A. ai 个
- B. bi 个
- C. ci 个
- D. di 个
大力水手问禅师:“是要我做这张试卷吗?”。禅师摆摆手,答:“多想想。”
大力水手注意到一张试卷可能有很多种正确答案(两种正确答案被认为是不同的当且仅当存在一道题这两份正确答案选的选项不同),于是问禅师:“是要我求这张试卷有多少种正确答案吗?”。禅师摆摆手,答:“多想想。”
大力水手想到,一张试卷要是正确答案有很多种,就很容易蒙对,于是问禅师:“是要我求出所有 n 道选择题的试卷中,正确答案最多的试卷吗?”。禅师点点头,转身离去。
例子
-
1. 编号小于 1 的题目中你一共选了几个 B?
- A. 0 个
- B. 7 个
- C. 1 个
- D. 4 个
-
2. 编号小于 2 的题目中你一共选了几个 A?
- A. 3 个
- B. 2 个
- C. 1 个
- D. 4 个
-
3. 编号小于 3 的题目中你一共选了几个 D?
- A. 0 个
- B. 2 个
- C. 1 个
- D. 0 个
输入格式
共一行,包含一个正整数 n ,表示试卷中选择题的个数。
输出格式
第一行一个整数,表示正确答案最多的试卷的正确答案数。你只用输出答案对 998244353 ( 7×17×223+1 ,一个质数)取模后的值。
接下来 n 行输出一种正确答案最多的试卷。如果有多种你可以输出任意一种。
这 n 行中的第 i 行包含 hi,ai,bi,ci,di ,表示第 i 道选择题。 hi 为 “A” 或 “B” 或 “C” 或 “D”, ai,bi,ci,di 都是整数且 0≤ai,bi,ci,di≤109 。
样例一
input
1
output
4 A 0 0 0 0
explanation
n=1 时正确答案最多的试卷的正确答案数为 4 ,四种正确答案分别为:第一题选 A、第一题选 B、第一题选 C、第一题选 D。
样例二
n=2 时正确答案最多的试卷的正确答案数为 12 ,但是你以为我会告诉你这张试卷长什么样吗?
限制与约定
测试点编号 | n |
---|---|
1 | n=2 |
2 | n=3 |
3 | n=4 |
4 | n=5 |
5 | n=6 |
6 | n≤1000 |
7 | |
8 | n≤105 |
9 | |
10 |
时间限制: 1s
空间限制: 256MB
后记
大力水手对禅师说:“我明白了!碰到一道问题多想想,就能锻炼大脑并体会到无穷的乐趣。这样日复一日,智商就能渐渐提高了!”
禅师摆摆手,嘿嘿一笑:“你想得太多了。智商等于心智年龄除以生理年龄,所以我刚才趁你思考时已经去公安局把你的出生日期改到昨天晚上了。现在你应该是世界上智商最高的人,请叫我雷锋。”
从此高智商的大力水手和奥利弗过上了幸福的生活。
下载
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~构造~
我来水博辣哼唧
我们可以发现,如果所有选择题都是A 0 0 0 0的话,除了最后一道题,剩余的都可以选BCD中的任意一项,而最后一道可以选ABCD中的任意一项,显然是最优答案。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define ll long long
const int mod=998244353;
int n,ans;
int main()
{
scanf("%d",&n);
ans=4;
for(int i=1;i<n;i++) ans=(ll)ans*3%mod;
printf("%d\n",ans);
for(int i=1;i<=n;i++) puts("A 0 0 0 0");
return 0;
}