当前位置: 首页 > news >正文

【PTA数据结构 | C语言版】两枚硬币

本专栏持续输出数据结构题目集,欢迎订阅。

文章目录

    • 题目
    • 代码

题目

伊娃喜欢收集全宇宙的硬币,包括火星币等等。一天她到了一家宇宙商店,这家商店可以接受任何星球的货币,但有一个条件,无论什么价格,都必须用 2 枚硬币一次付清,不能多也不能少。而她有多达 10^5 个硬币,于是求助于你。给定任一价格,请帮她找出可以付款的 2 枚硬币。

输入格式:
第 1 行给出 2 个正整数:n (≤10^5 )为硬币枚数、m(≤10^3 )为伊娃要付清的价格;第 2 行给出 n 枚硬币的面值,均为不超过 500 的正整数。同行数字间以空格分隔。

输出格式:
在一行中输出两枚硬币的面值 v1 和 v2,以 1 个空格分隔,满足条件 v1​ +v2 =m,并且 v1 ≤v2。如果这样的解不唯一,输出 v1 最小的那个解。如果解不存在,则输出 No Solution。

输入样例 1:
8 15
1 2 8 7 2 4 11 15

输出样例 1:
4 11

输入样例 2:
7 14
1 8 7 2 4 11 15

输出样例 2:
No Solution

题目引用自攀拓考试真题(2012年冬季)。

代码

#include <stdio.h>
#include <stdlib.h>int compare(const void *a, const void *b) {return (*(int*)a - *(int*)b);
}int main() {int n, m;scanf("%d %d", &n, &m);int coins[100000];for (int i = 0; i < n; i++) {scanf("%d", &coins[i]);}// 对硬币进行排序qsort(coins, n, sizeof(int), compare);int left = 0, right = n - 1;int found = 0;// 双指针法查找符合条件的硬币对while (left < right) {int sum = coins[left] + coins[right];if (sum == m) {printf("%d %d\n", coins[left], coins[right]);found = 1;break;} else if (sum < m) {left++;} else {right--;}}if (!found) {printf("No Solution\n");}return 0;
}
http://www.dtcms.com/a/268967.html

相关文章:

  • SpringAI学习笔记-Chat简单示例
  • 无需科学网络,免费开源Pandawiki,无缝对接微信、飞书和钉钉!
  • Mac中Minicom串口调试基础使用
  • Redis架构安全
  • 基于Java+SpringBoot 的销售项目流程化管理系统
  • 利用英译法案例演示RNN中的注意力机制(基于PyTorch)
  • 通达信 股道交易系统 幅图
  • 汽车功能安全概念阶段开发【功能安全需求及方案(FSRFSC)】3
  • 风电自动化发电中的通信桥梁:CAN主站转MODBUS TCP网关解析
  • 基于Spring Boot和PF4J的轻量级热插拔框架:为FaaS赋能动态插件化开发
  • 单片机STM32F103如何实现CAN总线?
  • 第一届OpenHarmonyCTF--Crypto--WriteUp
  • 基于 STM32 和 ESP8266 的银行排队叫号系统设计与实现(项目资料)(ID:1)
  • 各服务器厂商调整BIOS睿频教程
  • Qt中的坐标系
  • QT的事件过滤器eventFilter
  • 【1】从零构建Vue3响应式系统:基于TDD的完整实现
  • 【kafka-python使用学习笔记2】Python操作Kafka之环境准备(2)亲测有效有图有真相
  • Kotlin编写Android爬虫教程
  • ICME 2025 | 火山引擎在国际音频编码能力挑战赛中夺得冠军
  • 主机安全-开源HIDS字节跳动Elkeid使用
  • MongoDB与Spring Boot完整使用指南
  • Oracle注释详解
  • MIL-STD-1553B总线
  • 【Pandas】pandas DataFrame boxplot
  • ch04 部分题目思路
  • Logseq 插件开发实战四:发布到官方插件市场
  • 【VSCode 插件离线安装包下载方法分享】
  • 【PyTorch】PyTorch中torch.nn模块的循环层
  • Microsoft Visual Studio离线安装(以2022/2019为例)