Time Limit: 1000ms
Memory Limit: 128000KB

64-bit integer IO format:      Java class name:

Submit Status

几年前,在孙老大担任GDUTACM集训队教练之前,集训队的日子过得非常惨淡,实验室的桌子非常老旧,动不动就塌,集训队员们也是苦不堪言。幸运的是,在孙老大的领导下,集训队的日子走向了小康,所有东西都渐渐的有了,打印机(当然是激光的)什么的,高速上网(10+M每秒的下载)什么的。更加重要的是,集训队出去比赛的经费翻了几番,并且看起来肯定还会继续增长,总之,集训队正在大踏步向前飞奔。

沐浴在改革开放的春风里,月亮在白棉花般的云朵里穿行,晚风吹来一阵阵快乐的歌声,队员们坐在高高的谷堆旁边,听孙老大讲过去的故事。

那时候,集训队没有门锁,大家只能用一个不知道用了多久的密码锁来锁门(就是锁单车那一种),这个密码锁有3位,每位有1~N共计N个数字,其中1和N相邻(因为是个圈),密码锁有一个用户密码(A1,B1,C1),也有一个工厂密码(A2,B2,C2)(因为是冒牌厂商做的,所以比较坑爹= =)。更坑爹的是,由于年久失修,当开门的人使用的密码和正确密码的每一位相差都不超过2的时候,门锁就会打开。(摔~!)

比如用户密码是(1,2,3),工厂密码是(4,5,6),N为9,这个时候,如果使用密码(1,9,5)门锁就会被打开,因为它和用户密码分别相差了(0,2,2)。同理,密码(2,4,8)也可以开门,因为它和工厂密码的差距分别为(2,1,2)。但是(1,5,6)就不可以了,因为它和用户密码的差距为(0,3,3),和工厂密码的差距为(3,0,0)。

现在,孙老大问你,一共有多少个密码可以打开这个破门锁。

Input

输入数据的第一行只有一个数字,表示测试数据的数量。

接下来每组数据占3行。

第一行只有一个数字N(1<=N<=100)。。

接下来一行有三个数字,表示用户密码。。

第三行有三个数字,表示工厂密码。。

Output

每组数据输出一行,表示一共有多少个密码可以开锁。

Sample Input

1
50
1 2 3
5 6 7

Sample Output

249

对临界点特殊处理...

代码:

 1 #include <iostream>
 2 #include <cstring>
 3 #include <string>
 4 using namespace std;
 5 int map[105][105][105],ans;
 6 int n;
 7 void cmp(int x,int y,int z)
 8 {
 9     int i,j,k,p,q,m;
10     for(i=-2;i<=2;i++)
11     {
12         for(j=-2;j<=2;j++)
13         {
14             for(k=-2;k<=2;k++)
15             {
16                 p=x+i;q=y+j;m=z+k;
17                 while(p<=0||p>n||q<=0||q>n||m<=0||m>n)
18                 {
19                     if(p<=0) p=n+p;
20                     if(p>n) p=p%n;
21                     if(q<=0) q=n+q;
22                     if(q>n) q=q%n;
23                     if(m<=0)m=n+m;
24                     if(m>n) m=m%n;
25                 }
26                 if(!map[p][q][m])
27                 {
28                     ans++;
29                     map[p][q][m]=1;
30                 }
31             }
32         }
33     }
34 }
35 int main()
36 {
37     int k,x,y,z,x1,y1,z1;
38     cin>>k;
39     while(k--)
40     {
41         ans=0;
42         cin>>n;
43         memset(map,0,sizeof(map));
44         cin>>x>>y>>z;
45         cin>>x1>>y1>>z1;
46         cmp(x,y,z);
47         cmp(x1,y1,z1);
48         cout<<ans<<endl;
49     }
50     return 0;
51 }

转载于:https://www.cnblogs.com/wangmengmeng/p/5479429.html

nyoj 破门锁(水题)相关推荐

  1. NYOJ 买牛奶(水题)

    题目描述 LYH的朋友XY很喜欢喝牛奶,他几乎每天都要喝一袋牛奶.但是XY买牛奶时很讲究,如果不符合他的要求,就算不喝他也不会买的.他一共有两个要求:(1)容量大于300毫升的不买(2)价格大于5元或 ...

  2. 【nyoj - 890】 分东西 (水题 二进制)

    题干: 分东西 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 输入 第一行输出一个数i表示有i组情况(0<i<=10) 接下来的i行,每一行输入两个个数M(0&l ...

  3. 水题/poj 1852 Ants

    1 /* 2 PROBLEM:poj1852 3 AUTHER:Nicole 4 MEMO:水题 5 */ 6 #include<cstdio> 7 using namespace std ...

  4. HDU2673-shǎ崽(水题)

    如果不能够直接秒杀的题,就不算水题.又应证了那句话,有时候,如果在水题上卡住,那么此题对于你来说,也就不算是水题了额~~ 刚睡醒,迷迷糊糊. 题目的意思很简单,求一个最大的,再求一个最小的.几乎是什么 ...

  5. 图论刷水题记录(二)(最短路-----SPFA算法)

    继第一篇的后续,又来刷水题了,写的是SPFA算法,这个算法的复杂度比较玄学,感觉能不用就不用了,但是他的好处就是可以判断负圈. 3月26日: 1.POJ 1847 Tram 题意:在一个交通网络上有N ...

  6. 图论刷水题记录(一)(最短路-----dijkstra算法)

    最近实在不知道干些什么,感觉自己除了水题什么都不会做,算了去刷一刷图论的水题吧本来想合起来一起发,想了想太长的话以后看起来也不方便,题目所以今天晚上就先发了dij部分,由上到下由易变难. 1.POJ ...

  7. hdu 2041:超级楼梯(水题,递归)

    超级楼梯Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...

  8. HDU2568 前进【水题】

    前进 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  9. CF Round #426 (Div. 2) The Useless Toy 思维 水题

    题目链接: http://codeforces.com/contest/834/problem/A 题目描述: 输入起始状态和结束状态和数列长度, 判断旋转方向是顺时针逆时针还是不合理 解题思路: 长 ...

  10. NUC1312 Sum【水题+数学题】

    Sum 时间限制: 1000ms 内存限制: 65536KB 通过次数: 1总提交次数: 1 问题描述 认为自然数是从1-N.将每个数和+或-联系起来,然后计算这个表达式的值我们得到一个和S.这个问题 ...

最新文章

  1. 3篇量子计算里程碑论文同登Nature封面:保真度超99%,达到实用化水平
  2. php2612,达人曝光LGLSNJ2612AR质量好吗?怎么样呢?体验报告揭秘
  3. 基础编程题目集 6-13 折半查找 (15 分)
  4. python作用域排序_11道Python常见面试题,80%的人不会
  5. c#动态编译并动态生成dll
  6. 华为鸿蒙系统多而能使用吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  7. 中小学生计算机一等奖李广圆,喜报:昌乐一中学生在第二十届全国中小学电脑制作活动中获两项大奖...
  8. 最全的Vim操作快捷键
  9. stata 导出 相关系数表_STATA数据处理技巧与计量分析二|基本语句介绍
  10. 如何看懂这些图形学公式
  11. 【科普】准大一新生如何挑选笔记本电脑
  12. Web前端面试题整合,持续更新【可以收藏】
  13. 微信小程序:拼多多推客开发
  14. 【用例设计】接口用例设计
  15. 线性稳压器与开关稳压器的对比分析
  16. css和js带参数v或version
  17. 指针、结构体、枚举类和文件
  18. 计算机怎么打印订单,微信小商店怎么打印订单小票、标签、发货单、电子面单?...
  19. 机器人xacro设计+gazebo/rviz启动
  20. JAVA毕业设计家乡旅游文化推广网站计算机源码+lw文档+系统+调试部署+数据库

热门文章

  1. SQL语句执行效率及分析(轉)
  2. 很久没写了,今天兴致来了,写一下!
  3. Scrapy输出CSV指定列顺序
  4. YIi2 Pjax简单使用
  5. jquery学习之1.19-小练习3-输入用户名密码时焦点触发和失去焦点
  6. oracle 数据库-数据字典一
  7. GDI和GUI的区别
  8. C# 编译或者解释?
  9. 剑指offer之【树的子结构】
  10. hdu1176免费馅饼