読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Beta Round #33 (Codeforces format)

implementation

はい。
http://codeforces.com/contest/33

A. What is for dinner?

greedy,implementation

ざっくりと大意

・あまり知られていないがとても美しいWaterlandと呼ばれる国。かわいいサメValerieが住んでいる。
・サメは歯にいくつかの列が有ってcruciansを常食にしている。1つのcruciansを食べる時は1列の歯だけを使い他の列の歯は休んでいる。
・Valerieは長い間cruciansを探していたが不幸なことに歯痛になり、地方のロブスターAshot歯科医に診てもらうことになった。
・Ashotは歯痛を治して原因を特定した?
・Valerieがまた歯痛にならないようにcruciansをあと何回食べることが出来るか分かるようにした? 食べる毎に耐久度が1減る??
・Valerieが帰宅したらおいしいcruciansが待っていた。食べるのを我慢はできないが、また歯科医に掛かるのも嫌である?
・歯の耐久度がマイナスにならないように最大量のcruciansを食べたい。耐久度はマイナスになることは出来ない。
・Valerieが食べることの出来る最大量を計算して上げましょう。
・n=歯が全部で何列か、m=一列に歯が何個あるか?、k=cruciansの総量。r=インデックスでm=耐久度??サンプルだとインデックス被りあって耐久度同じっていうのがある。

方針のようなもの

・インデックス被りは上書きして耐久度の合計値とcrucians総量の小さい方出せばいいんでね??

やはりインデックスが被ってるのがよく理解できてない。。回答は2249644のxlkさんのパクリで

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import time
import sys, io
import re, math
(n,m,k)=map(int,raw_input().split())
l=[1E7]*m
for h in range(n):
    (i,t)=map(int,raw_input().split())
    l[i-1]=min(l[i-1],t)
print min(sum(l),k)

小さい方を見るという方針だけはよさそうだったぽい?