牛客小白月赛53
A
let list = readline().split(' ').map(item => parseInt(item))
let x = parseInt(readline())
let result = "";
for (let i = 0; i < list.length; i++) {
result += Math.max(x - list[i], 0).toString();
if (i !== list.length - 1) {
result += " ";
}
}
console.log(result);
B
let n = parseInt(readline())
const mod = 998244353;
// JS 的number类型有个最大值(安全值)。即2的53次方,为9007199254740992(16位)
// a * b % mod
function mul_mod(a, b, mod) {
let r = 0;
while (b) {
if (b & 1) r = (r + a) % mod;
a = (a + a) % mod;
b = Math.floor(b / 2);
}
return r % mod;
}
console.log(mul_mod(n, n, mod));
C
let s = readline();
let n = parseInt(readline());
let sn = s.length;
let ans = [];
let k = new Array(n).fill(0);
let maxk = 0;
for (let i = 0; i < n; i++) {
let ansi = readline();
ans.push(ansi);
// 计算
if (ansi.length !== sn) {
k[i] = 0;
} else {
// 计算sum
let sum = 0;
for (let j = 0; j < sn; j++) {
if (s[j] === ansi[j]) {
sum++;
}
}
k[i] = sum / sn;
}
maxk = Math.max(maxk, k[i]);
}
let result = [];
for (let i = 0; i < n; i++) {
if (k[i] === maxk) {
result.push(ans[i]);
}
}
result.sort();
for (let r of result) {
console.log(r);
}
D
let n = parseInt(readline());
let B = readline().split(' ').map(item => parseInt(item));
// B中的每一个值都可以变为1
let dp = new Array(n).fill(0);
let dpnot1 = new Array(n).fill(0);
for (let i = 1; i < n; i++) {
dp[i] = Math.max(Math.abs(1 - 1) + dp[i - 1], Math.abs(1 - B[i - 1]) + dpnot1[i - 1]);
dpnot1[i] = Math.max(Math.abs(B[i] - B[i - 1]) + dpnot1[i - 1], Math.abs(B[i] - 1) + dp[i - 1])
}
console.log(Math.max(dp[n - 1], dpnot1[n - 1]));
// https://www.bilibili.com/video/BV1k34y1n73B?p=3
E
let t = parseInt(readline());
// 贪心
while (t--) {
let s = parseInt(readline());
// 1, 2, 3, 4, 5, 6
let lst = readline().split(' ').map(item => parseInt(item));
let a = lst[0];
let b = lst[1];
let c = lst[2];
let d = lst[3];
let e = lst[4];
let f = lst[5];
// console.log(a, b, c, d, e, f );
// 边长为6, 5, 4的正方形,1个纸片1个框
// 边长为3的正方形,4个纸片1个框
let now = f + e + d + Math.ceil(c / 4);
// 边长为2的正方形,和边长为4的放一起,能放5个
let nowb = d * 5;
// 边长为2的正方形,和边长为3的放一起
// - 余1个边长为3时,可以放1个
// - 余2个边长为3时,可以放3个
// - 余3个边长为3时,可以放5个
if(c % 4 == 1) {
nowb += 5;
}else if(c % 4 == 2) {
nowb += 3;
}else if(c % 4 == 3) {
nowb += 1;
}
// 如果还有,就单独放,每个格子放9个
if(b > nowb) {
now += Math.ceil((b - nowb) / 9);
}
// 计算当前已经用的面积,余下的放边长为1的正方形
let used = 6 * 6 * f + 5 * 5 * e + 4 * 4 * d + 3 * 3 * c + 2 * 2 * b;
let nowa = 6 * 6 * now - used;
// 如果不够放
if(a > nowa){
now += Math.ceil((a - nowa) / 36);
}
console.log(now <= s ? "Yes" : "No");
}