USACO
来源:互联网 发布:aⅴ淘宝在线视频超碰 编辑:程序博客网 时间:2024/06/10 00:10
Combination Lock
题目描述
农夫约翰的奶牛不停地从他的农场中逃出来,导致了很多损害。为了防止它们再逃出来,他买了一只很大的号码锁以防止奶牛们打开牧场的门。
农夫约翰知道他的奶牛很聪明,所以他希望确保它们不会在简单地试了很多不同的号码组合之后就能轻易开锁。锁上有三个转盘,每个上面有数字1..N (1 <= N <= 100),因为转盘是圆的,所以1和N是相邻的。有两种能开锁的号码组合,一种是农夫约翰设定的,还有一种“预设”号码组合是锁匠设定的。但是,锁有一定的容错性,所以,在每个转盘上的数字都与一个合法的号码组合中相应的数字相距两个位置以内时,锁也会打开。
比如说,如果农夫约翰的号码组合是(1,2,3),预设号码组合是(4,5,6),在转盘被设定为(1,4,5)(因为这和农夫约翰的号码组合足够接近)或(2,4,8)(因为这和预设号码组合足够接近)。注意,(1,5,6)并不会打开锁,因为它与任一号码组合都不够接近。
给出农夫约翰的号码组合和预设号码组合,请计算能够开锁的不同的号码组合的数目。号码是有序的,所以(1,2,3)与(3,2,1)不同。
输入输出格式
输入格式:
第一行:整数N。
第二行:三个以空格分隔的整数,为农夫约翰的号码组合。
第三行:三个以空格分隔的整数,为预设号码组合(可能与农夫约翰的号码组合相同)。
输出格式:
第一行:所有不同的能够开锁的号码组合的总数。
输入输出样例
输入样例#1:
50
1 2 3
5 6 7
输出样例#1:
249
模拟,注意不要在满足两种情况的时候计数两次。
Code
#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;int main(){ int n,a[3],b[3],ans = 0; cin >> n >> a[0] >> a[1] >> a[2] >> b[0] >> b[1] >> b[2]; for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { for (int k=1;k<=n;k++) { if ( (abs(a[0]-i) <= 2 || (i+n-a[0])<=2 || ((n-i+a[0])<=2)) && (abs(a[1]-j) <= 2 || (j+n-a[1])<=2 || ((n-j+a[1])<=2)) && (abs(a[2]-k) <= 2 || (k+n-a[2])<=2 || ((n-k+a[2])<=2))) { ans++; continue; } if ( (abs(b[0]-i) <= 2 || (i+n-b[0])<=2 || ((n-i+b[0])<=2)) && (abs(b[1]-j) <= 2 || (j+n-b[1])<=2 || ((n-j+b[1])<=2)) && (abs(b[2]-k) <= 2 || (k+n-b[2])<=2 || ((n-k+b[2])<=2)) ) { ans++; continue; } } } } cout << ans; return 0;}
0 0
- USACO
- USACO
- usaco
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- 程序部署到服务器的错误总结
- 在实际开发中,调试可能遇到的BUG汇总一
- 做个简单的粒子效果
- openstack安装glance-api服务启动失败
- 五星龙Z一颗 《从原型模式的使用方式不难推断出,原型模式常使用于以下场景》
- USACO
- 8、解决Linux无法上网的各种问题
- 如何通过sea.js进行模块化开发
- 在Java中使用注释
- R_as.numeric()函数在转换小数时返回无意义结果的解决
- Swift (10) Optional Chaining && Deinitialization 选择链 && 去初始化
- [leetcode: Python]291. Nim Game
- 走进java_接口和抽象类的区别
- C++抽象编程——算法分析(5)——标准复杂度类