#585(DIV 2)ラウンドCodeforces [補充]

序文

昨日の午後は、私はすぐに、飛行機の仕事を埋めるためにあるため、右書き、そして今週は仕上げタイトルのために戦うしませんでした、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;
}

おすすめ

転載: www.cnblogs.com/BaseAI/p/11529924.html