AtCoder Beginner Contest 095/AtCoder Regular Contest 096

はい。
https://beta.atcoder.jp/contests/abc095

A - Something on It

Python3

s=input()
print(s.count("o")*100+700)

oの個数に合わせてラーメンの値段を計算して出力ですね。

B - Bitter Alchemy

Python3

n,x=map(int,input().split())
tmp=10000
for i in range(n):
    m=int(input())
    x-=m
    tmp=min(tmp,m)
    
print(x//tmp+n)

各種1つずつ分にお菓子の素を使って後は最小のmに全部使う(使い切るということではない)ことにすれば最大個数になるはずだと思います。。

C - Half and Half

Python3

a,b,c,x,y=map(int,input().split())
chk=min(x,y)
ans=max(x,y)*c*2
ans=min(ans,a*x+b*y,chk*c*2+a*(x-chk)+b*(y-chk))
print(ans)

割りとよくある問題だと思う。ABピザが0枚、X枚、Y枚で、AピザとBピザは足りない分はよしなにで。とりあえずこういう問題では0か全部使うかみたいな極端な解しかないと思います。多分。。なぜそうなのか証明は省くのですがABピザが1枚以上でX未満、Y未満みたいな解はあり得ません。あり得ない証明はしないのですけどあり得ません。なので1ずつずらしてforループぶん回しとかは必要なくて、いくつかのパターンの数式を立ててソレを比較すれば解決できるはずです。多分。