codeforces 417A Elimination

来源:互联网 发布:mysql时间毫秒 编辑:程序博客网 时间:2024/06/05 15:20

Description
The finalists of the “Russian Code Cup” competition in 2214 will be the participants who win in one of the elimination rounds.

The elimination rounds are divided into main and additional. Each of the main elimination rounds consists of c problems, the winners of the round are the first n people in the rating list. Each of the additional elimination rounds consists of d problems. The winner of the additional round is one person. Besides, k winners of the past finals are invited to the finals without elimination.

As a result of all elimination rounds at least n·m people should go to the finals. You need to organize elimination rounds in such a way, that at least n·m people go to the finals, and the total amount of used problems in all rounds is as small as possible.

Input
The first line contains two integers c and d (1 ≤ c, d ≤ 100) — the number of problems in the main and additional rounds, correspondingly. The second line contains two integers n and m (1 ≤ n, m ≤ 100). Finally, the third line contains an integer k (1 ≤ k ≤ 100) — the number of the pre-chosen winners.

Output
In the first line, print a single integer — the minimum number of problems the jury needs to prepare.

Sample Input
Input
1 10
7 2
1
Output
2
Input
2 2
2 1
2
Output
0

题意:输入是c d n m k ;总决赛有n*m个名额,保送名额有k个,现在有两种形式的选拔赛,第一种需要出c道题,每办一场可以选出n支队伍,第二种每场有出d道题,每场选出一支队伍,问最少需要出多少题;

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;int main(){    int c,d,n,m,k;    while(cin>>c>>d>>n>>m>>k)    {        int sum=n*m-k;        if(sum<=0)        {            cout<<"0"<<endl;            continue;        }        int num=0;        int ch=sum/n;        int s1=ch*c;        int ch2=sum%n;        int s2=ch*n*d;        num=min(s2+min(ch2*d,c),s1+min(ch2*d,c));        cout<<num<<endl;    }    return 0;}
0 0