博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT乙级1083(C++)——龙哥哥的刷题路
阅读量:3704 次
发布时间:2019-05-21

本文共 689 字,大约阅读时间需要 2 分钟。

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

解题思路:用map来存取数字与重复次数的关系,最后倒叙输出map即可

#include
#include
using namespace std;int a[10005];int main(){
int N = 0; map
div; cin >> N; for (int i = 1; i <= N; i++){
cin >> a[i]; div[abs(a[i] - i)]++; } auto ite = div.cend(); while (ite != div.cbegin()){
ite--; int x=(*ite).first; int y = (*ite).second; if (y != 1){
printf("%d %d\n", x, y); } } return 0;}

转载地址:http://kkujn.baihongyu.com/

你可能感兴趣的文章
Hexo博客Ayer主题美化之随机封面
查看>>
博客中能用到的代码(二)
查看>>
博客中能用到的代码
查看>>
打字机效果-type-js
查看>>
解决github头像加载不出来
查看>>
在linux上安装python3-7
查看>>
Hexo博客美化之添加公告板---基于Ayer主题有两种模式
查看>>
基于MFC和二维变换的画图软件
查看>>
基于WINDLX的系统结构实验
查看>>
Hexo竟然可以展示PDF
查看>>
Hexo插件推荐
查看>>
Hexo博客搭建超级指南
查看>>
博客前端禁止鼠标右键,F12,F5
查看>>
《微机原理与接口技术》知识点总结
查看>>
《编译原理》知识点考点超全总结
查看>>
《计算机网络》知识点超详细总结
查看>>
《数据库》基础知识点考点大全
查看>>
《算法分析与设计》笔记总结
查看>>
《软件工程》知识点超详细总结归纳
查看>>
《计算机系统结构》详细知识点总结
查看>>