密码锁(春季每日一题 29)
农夫约翰的奶牛们总是偷偷的逃出他的农场,去外面为非作歹。
农夫约翰为了防止它们私自逃离农场,购买了一个密码锁,以此阻止奶牛们打开农场大门。
约翰知道他的奶牛们都非常聪明,因此他想要确保它们不能通过简单的尝试一些密码组合,就轻易的将锁打开。
锁具上有三个密码拨盘,每个拨盘上的数字为 1…N1…N1…N,其中 111 和 NNN 相邻(因为拨盘是圆形的)。
一共有两种可以打开密码锁的数字组合,一组是约翰设置的密码组合,一组是制造商设置的密码组合。
这种锁具有一定的容错性,只要三个表盘上的数字与任意一组正确密码组合的对应位置数字相距两个位置以内,锁均会打开。
例如,假设约翰设置的密码组合是 (1,2,3)(1,2,3)(1,2,3),制造商设置的密码组合是 (4,5,6)(4,5,6)(4,5,6)。
此时我们输入组合 (1,3,5)(1,3,5)(1,3,5) 就可以将锁打开,因为这与约翰设置的密码接近,输入组合 (2,4,8)(2,4,8)(2,4,8) 也可以将锁打开,因为这与制造商设置的密码接近。
但是,如果我们输入组合 (1,5,6)(1,5,6)(1,5,6) 就不能将锁打开,因为它和两个密码都不接近。
现在给定你两个设置好的密码,请你判断一共有多少种密码组合可以将锁打开。
注意,密码组合是有序的,因此 (1,2,3)(1,2,3)(1,2,3) 和 (3,2,1)(3,2,1)(3,2,1) 是两种不同的组合。
输入格式
第一行包含整数 NNN。
第二行包含三个整数,表示约翰设置的密码组合。
第三行包含三个整数,表示制造商设置的密码组合。
输出格式
输出一个整数,表示可以打开锁的密码组合数量。
数据范围
1≤N≤1001≤N≤1001≤N≤100
输入样例:
50
1 2 3
5 6 7
输出样例:
249
#include<iostream>using namespace std;int n;
int a[3], b[3];int both(){if(n <= 5) return n * n * n;int res = 1;for(int i = 0; i < 3; i++){int d = abs(a[i] - b[i]);res *= max(0, 5 - d) + max(0, 5 - (n - d));}return res;
}int single(){int res = 1;for(int i = 0; i < 3; i++)res *= min(5, n);return res;
}int main(){cin >> n;for(int i = 0; i < 3; i++) cin >> a[i];for(int i = 0; i < 3; i++) cin >> b[i];cout << single() * 2 - both() << endl;return 0;
}
密码锁(春季每日一题 29)相关推荐
- Leetcode每日一题:29.divide-two-integers(两数相除)
参照评论大佬思路 学到了: /*** 解题思路:这题是除法,所以先普及下除法术语* 商,公式是:(被除数-余数)÷除数=商,记作:被除数÷除数=商...余数,是一种数学术语.* 在一个除法算式里,被除 ...
- 【考研每日一题29】吃糖果(C++)
原题地址:牛客网 题目描述: 名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0). 妈妈告诉名名每天可以吃一块或者两块巧克力. 假设名 ...
- AcWing 1695 果壳游戏 题解(春季每日一题)
有一些思维的简单模拟 原题 #include<bits/stdc++.h>using namespace std;const int N = 110;int n; int ans;//记录 ...
- AcWing 1671 三角形 题解(春季每日一题)
注意一下范围,模拟即可 原题 #include<bits/stdc++.h>using namespace std;#define int long long #define pb pus ...
- 春季每日一题2022 Week 2 【完结】
目录 1671. 三角形[暴力] 1659. 社交距离 I[二分] 1714. 混合牛奶[模拟] 1695. 果壳游戏[枚举] 1671. 三角形[暴力] #include<bits/stdc+ ...
- 春季每日一题2022 Week 1 【完结】
目录 3346. 你知道你的ABC吗[排序] 3358. 放养但没有完全放养[贪心] 3370. 牛年[模拟] 3745. 牛的学术圈 I[二分] 1459. 奶牛体操[暴力] 1442. 单词处理器 ...
- 2021春季每日一题【week6 未完结】
目录 28. 实现 strStr()[KMP] 141. 周期[KMP 未完成] 91. 解码方法[未完成] 821. 跳台阶 363. 矩形区域不超过 K 的最大数值和[前缀和] 3412. 邻域均 ...
- 2021春季每日一题【week5 未完结】
目录 179. 最大数[贪心] 1453. 移掉K位数字[贪心 / 思维] 783. 二叉搜索树节点最小距离 71. 二叉树的深度 208. 实现 Trie (前缀树)[未完成] 142. 前缀统计[ ...
- 2021春季每日一题【week4 完结】
目录 80. 删除有序数组中的重复项 II 817. 数组去重 81. 搜索旋转排序数组 II 22. 旋转数组的最小数字 153. 寻找旋转排序数组中的最小值 68. 0到n-1中缺失的数字 154 ...
最新文章
- Eclipse ADT 21 Preview 10 发布
- stm32 usart 单线半双工串口 DMA发送 最后一个字节发不出来问题
- 安卓使用Span富文本给某段Text文本加上波浪线
- Database之SQLSever:SQL命令实现理解索引、规则、默认概念及其相关案例之详细攻略
- 田志刚:致《你的知识需要管理》读者
- java13 InputStream,Reader
- ceres-solver学习笔记
- WCF 第八章 安全 客户端认证
- html文件转换成dwt文件,如何把dwt页面转换成html页面
- matlab进化树的下载,MEGA官网下载|MEGA进化树 V7.0.26 官方最新版 下载_当下软件园_软件下载...
- 知识竞赛软件已全面取代了传统手工赛场控制方式
- Java:实现动态规划的4个经典题型,你都会吗?拒绝做优秀的码农
- 从年薪1万到年薪100万的日子
- python编程技术主要内容是_Python核心编程的四大神兽
- 【Musescore 】开源打谱软件 快速入门笔记
- 招商银行一网通H5接口调试和测试报告撰写注意事项
- 毕业设计 : 基于stm32的微信天气机器人 - 天气检测 环境监测 微信机器人
- C++学习笔记-第4单元-对象和类(基础)
- HTTP和QUIC协议以及HTTPS——学习笔记
- PCF8951(AD-DA)