题解 CF1215A 【Yellow Cards】

· · 题解

来个笨方法。

根据k1和k2分类讨论。

#include <bits/stdc++.h>
using namespace std;
int a1,a2,k1,k2,n;
int main(){
    scanf("%d%d%d%d%d",&a1,&a2,&k1,&k2,&n);
    int use=a1*(k1-1)+a2*(k2-1);//可以消耗的黄牌 
    if(use>=n)cout<<0<<" ";
    else cout<<n-use<<" ";
    if(k1>k2){//1队的k比2队小 
        swap(a1,a2);
        swap(k1,k2);
    }
    int killed=0;//最大踢人数 
    int p=0;
    //1:整死了1队  2:整死了2队 :3:整死了1、2队 
    if(n>=a1*k1){//先把1队整死 
        killed+=a1;
        n-=a1*k1;
        p=1;
    }
    if(n>=a2*k2){//再把2队整死 
        killed+=a2;
        n-=a2*k2;
        if(p==0)p=2;
        else p=3;
    }
    if(p==0||p==2){//1队还没整 :整1队 
        killed+=n/k1;
        n%=k1;
    }
    if(p==0||p==1){//2队还没整 :整2队
        killed+=n/k2;
        n%=k2;
    }
    cout<<killed<<endl;
    return 0;
}