概要
k 分間の休憩時間で、n 個ある飯屋のいずれかに昼食をとりに行きます。
各飯屋は f, t の二つの数値をもち、食事に t 分間かかり、f の満足度を得ます。
t が k を超える場合は、f - ( t - k ) の満足度を得ます。
最も満足度が高くなる飯屋を選んだ場合の満足度を求めよ。
概要
各飯屋について満足度を計算して、最大値をとります。
コード
typedef vector<int> VI; #define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i ) #define ALL( c ) (c).begin(), (c).end() int main() { cin.tie( 0 ); ios::sync_with_stdio( false ); int n, k; cin >> n >> k; VI fs( n ), ts( n ); REP( i, 0, n ) { cin >> fs[i] >> ts[i]; } VI joy( n ); REP( i, 0, n ) { joy[i] = k < ts[i] ? fs[i] - ( ts[i] - k ) : fs[i]; } cout << *max_element( ALL( joy ) ) << endl; return 0; }