博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HackerRank Ice Cream Parlor
阅读量:5366 次
发布时间:2019-06-15

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

Ice Cream Parlor

Authored by  on Mar 21 2013

Problem Statement

Sunny and Johnny together have M dollars they want to spend on ice cream. The parlor offers N flavors, and they want to choose two flavors so that they end up spending the whole amount.

You are given the cost of these flavors. The cost of the ith flavor is denoted by ci. You have to display the indices of the two flavors whose sum is M.

Input Format

The first line of the input contains TT test cases follow. 

Each test case follows the format detailed below: The first line contains M. The second line contains N. The third line contains N space-separated integers denoting the price of each flavor. Here, the ith integer denotes ci.

Output Format

Output two integers, each of which is a valid index of a flavor. The lower index must be printed first. Indices are indexed from 1 to N.

Constraints

1T50 

2M10000 
2N10000 
1ci 10000,where i[1,N] 
The prices of any two items may be the same and each test case has a unique solution.

Sample Input

2451 4 5 3 2442 2 4 3

Sample Output

1 41 2

Explanation

The sample input has two test cases. 

For the 1st, the amount M = 4 and there are 5 flavors at the store. The flavors indexed at 1 and 4 sum up to 4. 
For the 2nd test case, the amount M = 4 and the flavors indexed at 1 and 2 sum up to 4.

Solution

简单题。

利用题目给出的cost数组构造index数组,index[i]表示icost数组中首次出现的位置。

Implementation

 

#include
using namespace std;const int N(1e4+5);int idx[N];int main(){
freopen("in", "r", stdin); int T; cin>>T; for(int n, m, id1, id2; T--; memset(idx, 0, sizeof(idx))){
cin>>m>>n; for(int i=1, c; i<=n; i++){
cin>>c; if(c>=m) continue; //error-prone if(!idx[c]) idx[c]=i; if(idx[m-c]&&idx[m-c]!=i){
id1=idx[m-c], id2=i; //error-prone } } cout<
<<' '<
<

凡注释error-prone的地方都是开始写错了的。

1. 我的写法是边读入边处理的,有时会没读完就得出答案,这时很容易就来个break;

2. 针对这道题的

  2.1 要预判c>=m的情况

  2.2 如何处理cost相同的flavor

转载于:https://www.cnblogs.com/Patt/p/4746518.html

你可能感兴趣的文章
CodeReview实践与总结
查看>>
Android風の日付ピッカー実装用jQueryMobileウィジェット
查看>>
【安卓9】ORM、ORM方法改写增删改操作
查看>>
Linuxday4——文件管理
查看>>
【算法】背包问题概要
查看>>
python基础——使用元类
查看>>
libvlc —— 攫取 RGB图像 和 PCM音频 数据[C++代码实现]
查看>>
Binary Numbers
查看>>
牛客寒假算法基础集训营5 A 炫酷双截棍
查看>>
10-Meat肉类
查看>>
软件需求规格说明书
查看>>
建造者模式
查看>>
移动web开发入门级
查看>>
Vuex/Vue 练手项目 在线汇率转换器
查看>>
你弱的时候,坏人真的很多
查看>>
maven打包spring项目后第三包jar包无法打入项目jar包问题
查看>>
《Cracking the Coding Interview》——第1章:数组和字符串——题目8
查看>>
LeetCode - N-Queens
查看>>
[LeetCode]Partition List
查看>>
chrome使用
查看>>