序文
昨日の午後は、私はすぐに、飛行機の仕事を埋めるためにあるため、右書き、そして今週は仕上げタイトルのために戦うしませんでした、Dのタイトルを見ました。
イエローカード
羅区CF1215A
最初に私はあまりにも恥ずかしい良い方法を考えていません。
スークは兄、このような方法を提供します:
以下のために\(最小\) 、私たちは一人一人が、毛与えると仮定((K-1)\ \を ) カード、\(A_1 \)がされて\((k_1-1)\)、\ (A_2が\)です\します( (k_2-1)\) 、一人一人が、「彩度」を達成するように、残りはそれぞれ1人のイエローカードの運命を行います。
以下のために\(最大\) 、我々は列挙するために暴力を使う(私は\)\をして、\(A_1 \)に置く(私は\)\を張は、中\(A_2 \)に置く\((NI)\)最大を探して、張を以下のような値
コード
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
inline int read() {
int x=0,f=1; char ch=getchar();
while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
return x * f;
}
int n,a1,a2,k1,k2,Max,Min;
int main()
{
a1 = read(), a2 = read(), k1 = read(), k2 = read(), n = read();
Min = max(0, n-((k1-1)*a1+(k2-1)*a2));
for(int i=0;i<=n;++i) {
Max = max(Max, min(a1 ,i/k1)+min(a2, (n-i)/k2));
}
printf("%d %d\n",Min,Max);
return 0;
}