PAT乙级:1083 是否存在相等的差 (20分)

题干

给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?

输入格式:

输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。

输出格式:

按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。

输入样例:

8
3 5 8 6 2 1 4 7

输出样例:

5 2
3 3
2 2

思路

hash表,记录一下,按降序输出即可。可以用map实现因为自动有序

code

#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
int main(){
int n=0;
cin>>n;
vector<int> nums(n);
for(int i=0;i<n;i++) cin>>nums[i];
map<int,int> dic;
for(int i=0;i<n;i++){
dic[abs(nums[i]-i-1)]++;
}
for(auto it=dic.rbegin();it!=dic.rend();++it){
pair<int,int> temp=*it;
if(temp.second>=2) cout<<temp.first<<" "<<temp.second<<endl;
}
return 0;
}

结果

提交时间 状态 分数 题目 编译器 耗时 用户
2020/4/1 10:29:10 答案正确 20 1083 C++ (g++) 17 ms a man
测试点 结果 耗时 内存
0 答案正确 5 ms 384 KB
1 答案正确 4 ms 508 KB
2 答案正确 3 ms 384 KB
3 答案正确 17 ms 808 KB

最新文章

  1. android输入限制
  2. ZTE and TP-Link RomPager - DoS Exploit
  3. Git 源代码管理工具
  4. angularjs ng-option ie issue解决方案
  5. float 和 inline-block的心得
  6. 关于Elasticsearch单个索引文档最大数量问题
  7. App lifecycle(UWP深入学习一)
  8. CentOS 快速安装pip
  9. 更新Code First生成的数据库
  10. Spring execution 表达式
  11. 博客志第一天——判断一个整数N是否是完全平方数?
  12. [PHP] sys_get_temp_dir()和tempnam()函数报错与环境变量的配置问题
  13. 初识 Nginx
  14. 任务调度框架FluentScheduler简介
  15. STM32 PWM输出(映射)
  16. godaddy之ssl申请
  17. vmware因为软件出过一次复制的错误导致不能复制到主机的解决方法
  18. 使用Spring配置shiro时,自定义Realm中属性无法使用注解注入解决办法
  19. numpy.ravel()/numpy.flatten()/numpy.squeeze()
  20. Java连接MySQL数据库,并进行增删改查

热门文章

  1. AI芯片加速图像识别
  2. python小知识,列表推导式
  3. 四、SSL虚拟证书
  4. 【题解】Luogu P2327 [SCOI2005]扫雷
  5. Spring Cloud Data Flow整合UAA之使用LDAP进行账号管理
  6. Xmanager6 企业版安装
  7. jquery循环动画
  8. 【LeetCode每日一题 Day 2】2. 两数相加
  9. 【原创】SystemVerilog中的多态和虚方法
  10. Maven——基础篇