语言月赛 202308【小粉兔做麻辣兔头】题解(AC)
》》》点我查看「视频」详解》》》
[语言月赛 202308] 小粉兔做麻辣兔头
题目描述
粉兔喜欢吃麻辣兔头,麻辣兔头的辣度分为若干级,用数字表示,数字越大,兔头越辣。为了庆祝粉兔专题赛 #1 的顺利举行,粉兔要做一些麻辣兔头送给扶苏、Max、小 F 和 Z,但是,粉兔不知道这些麻辣兔头应该做成什么辣度,TA 决定使用投骰子的方法来决定。
粉兔使用的骰子不是标准的 6 6 6 面骰子。粉兔的骰子,每一面上写有 1 ∼ 6 1\sim 6 1∼6 中的一个数字, 1 1 1 的对面为 2 2 2, 3 3 3 的对面为 4 4 4, 5 5 5 的对面为 6 6 6。粉兔将 N N N 个骰子摞成一个骰子塔,从下向上数第 i i i 个骰子,向上的一面写的数字为 P i P_i Pi。
粉兔决定将麻辣兔头的总辣度做成这个骰子塔暴露在空气中所有面上数字之和,请问,总辣度为多少?
输入格式
输入共两行。
输入的第一行为一个整数 N N N。
输入的第二行为 N N N 个整数,第 i i i 个为 P i P_i Pi。
输出格式
输出一行一个整数,代表兔头总辣度。
样例 #1
样例输入 #1
6
1 2 3 4 5 6
样例输出 #1
90
提示
样例 1 解释
侧面上数字总和为 84 84 84,顶上数字为 6 6 6,加和得答案为 90 90 90。
数据规模与约定
- 对于 20 % 20\% 20% 的数据, N = 1 N=1 N=1;
- 对于另外 20 % 20\% 20% 的数据, P i = 6 P_i=6 Pi=6;
- 对于 100 % 100\% 100% 的数据, 1 ≤ N ≤ 1 0 6 1 \le N \le 10^6 1≤N≤106, 1 ≤ P i ≤ 6 1 \le P_i \le 6 1≤Pi≤6。
AC_Code
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int a[N];
int w[10]; // w[i] 存放i的对面是什么数字
int main()
{
w[1] = 2, w[2] = 1;
w[3] = 4, w[4] = 3;
w[5] = 6, w[6] = 5;
int n;
cin >> n;
for(int i = 1; i <= n; i ++) cin >> a[i];
int sum = 0;
for(int i = 1; i <= n - 1; i ++) sum += a[i] + w[a[i]];
sum += w[a[n]];
cout << 21 * n - sum;
return 0;
}
》》》点我查看「视频」详解》》》