[ABC087A] Buying Sweets
[ABC051A] Haiku
[AT_yahoo_procon2017_qual_b]オークション
3合一,解析依次
题面翻译
你手头有 X X X 元钱,每个蛋糕 A A A 元,每个甜甜圈 B B B 元,求购买蛋糕和甜甜圈后最少剩下多少钱。
注意:如果钱可以花光,请输出 0 0 0 。样例3和样例7的输出都为0。
你会先买一个蛋糕,然后尽可能的多买甜甜圈。
感谢@hiuseues 提供的翻译
题目描述
あなたは、$ X $ 円を持ってケーキとドーナツを買いに出かけました。
あなたはまずケーキ屋で $ 1 $ 個 $ A $ 円のケーキを $ 1 $ 個買いました。 次に、ドーナツ屋で $ 1 $ 個 $ B $ 円のドーナツをできるだけたくさん買いました。
これらの買い物のあと手元に残っている金額は何円ですか。
输入格式
入力は以下の形式で標準入力から与えられる。
$ X $ $ A $ $ B $
输出格式
買い物のあとに残った金額を出力せよ。
样例 #1
样例输入 #1
1234
150
100
样例输出 #1
84
样例 #2
样例输入 #2
1000
108
108
样例输出 #2
28
样例 #3
样例输入 #3
579
123
456
样例输出 #3
0
样例 #4
样例输入 #4
7477
549
593
样例输出 #4
405
提示
制約
- $ 1\ \leq\ A,\ B\ \leq\ 1,000 $
- $ A\ +\ B\ \leq\ X\ \leq\ 10,000 $
- $ X,\ A,\ B $ は整数である
Sample Explanation 1
ケーキを買ったあとに手元に残っている金額は $ 1234\ -\ 150\ =\ 1084 $ 円です。 この金額でドーナツは $ 10 $ 個買うことができ、ドーナツの購入後に残る金額は $ 84 $ 円です。
//这个题貌似有问题,我一开始做的完全和答案对不上,但是算能算对
//解这个题我想了很多,但是没想到最后这么短的的代码是过了的,在此之前的代码写了很多特判
//while完毕后,需要加回一次递增/递减量来达到某个东西最大化利用的效果,因为while完了就是不满足条件的退出(干嘛写这个啊??
int main(){
ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
int x,a,b;
cin>>x>>a>>b;
x-=a;
cout<<x%b;
return 0;
}
オークション
题面翻译
高桥君看见了N个商品,他决定购买其中的K个
然后输入第i个物品的价格(A[i])
不过时间有限,每天只能购买1个商品
不过商家十分黑心从第二天开始每个商品都会上涨1元
求最少花多少元才可以购买K个商品
感谢@RioBlu里约布鲁 提供的翻译
题目描述
高橋君はオークションサイトでの買い物を楽しんでいます。 今、このオークションサイトには $ N $ 個の商品が出品されており、$ i $ 個目の商品の値段は $ A_i $ 円です。 このオークションサイトでは、一日に一個までしか商品を買うことができず、 一日たつごとにどの商品も値段が $ 1 $ 円ずつ増えます。 もちろん、同じ商品は一度までしか買うことはできません。
高橋君は $ K $ 個の商品を買いたいです。 高橋君が $ K $ 個の商品を買うために必要な金額の最小値を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
$ N $ $ K $ $ A_1 $ $ A_2 $ $ … $ $ A_N $
输出格式
高橋君が $ K $ 個の商品を買うためにかかる金額の総和の最小値を一行に出力せよ。
样例 #1
样例输入 #1
3 2
1 3 5
样例输出 #1
5
样例 #2
样例输入 #2
5 3
6 3 2 4 7
样例输出 #2
12
提示
制約
- $ 1\ ≦\ N\ ≦\ 10^5 $
- $ 1\ ≦\ K\ ≦\ N $
- $ 1\ ≦\ A_i\ ≦\ 10^9 $
Sample Explanation 1
例えば、以下のように買い物をすれば高橋君は $ 5 $ 円で $ 2 $ 個の商品を買うことができます。 - $ 1 $ 日目に $ 3 $ 円の商品を買う。このとき、残りの商品の値段は $ 1 $ 円ずつ上がり、$ 2 $ 円と $ 6 $ 円の商品が残る。 - $ 2 $ 日目に $ 2 $ 円の商品を買う。このとき、使った金額の合計は $ 5 $ 円となる。
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
signed main(){
ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
ll n,k;cin>>n>>k;ll arr[n],sum=0;
for(ll i=0;i<n;++i)cin>>arr[i];
sort(arr,arr+n);
for(ll i=0;i<k;++i)sum+=arr[i]+i;
cout<<sum;
return 0;
}
[ABC051A] Haiku
题面翻译
题目描述
海豚们的语言总爱在一个单词后面加一个,(英文逗号)已知他们的说话的格式是
[5个小写字母],[7个小写字母],[5个小写字母]
你知道人类的语言是不会再单词后面加逗号的,所以请你
把海豚语言转换成人类的语言。
输入格式
一行,一个字符串s。
输出格式
一行,转换后的语言。
输入样例1
happy,newyear,enjoy
输出样例1
happy newyear enjoy
输入样例2
haiku,atcoder,tasks
输出样例2
haiku atcoder tasks
输入样例3
abcde,fghihgf,edcba
输出样例3
abcde fghihgf edcba
题目描述
イルカは、新年に長さ $ 19 $ の文字列 $ s $ を受け取りました。
文字列 $ s $ の形式は [英小文字 $ 5 $ 文字],[英小文字 $ 7 $ 文字],[英小文字 $ 5 $ 文字]
で表されます。
イルカは、カンマで区切られた文字列 $ s $ を、スペースで区切られた文字列に変換したいと思っています。
イルカの代わりに、この処理を行うプログラムを作ってください。
输入格式
入力は以下の形式で標準入力から与えられる。
$ s $
输出格式
処理した後の文字列を出力せよ。
样例 #1
样例输入 #1
happy,newyear,enjoy
样例输出 #1
happy newyear enjoy
样例 #2
样例输入 #2
haiku,atcoder,tasks
样例输出 #2
haiku atcoder tasks
样例 #3
样例输入 #3
abcde,fghihgf,edcba
样例输出 #3
abcde fghihgf edcba
提示
制約
- $ s $ の長さは $ 19 $ である。
- $ s $ の $ 6 $ 文字目と $ 14 $ 文字目は
,
である。 - それら以外の $ s $ の文字は英小文字である。
Sample Explanation 1
happy,newyear,enjoy
に含まれるカンマをスペースで置き換えて、happy newyear enjoy
を出力します。
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
string str;
getline(cin,str);
transform(str.cbegin(),str.cend(),str.begin(),[](char c){
if(c==',')return ' ';
else return c;
});
cout<<str;
}