#include <bits/stdc++.h>   using namespace std;   const int inf = 0x3f3f3f3f;   const int _inf = 0xc0c0c0c0;   const long long INF = 0x3f3f3f3f3f3f3f3f;   const long long _INF = 0xc0c0c0c0c0c0c0c0;   const long long mod = (int)1e9 + 7;   long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }   long long ksm(long long a, long long b, long long mod) {     int ans = 1;     while (b) {       if (b & 1) ans = (ans * a) % mod;       a = (a * a) % mod;       b >>= 1;     }     return ans;   }   long long inv2(long long a, long long mod) { return ksm(a, mod - 2, mod); }   void exgcd(long long a, long long b, long long &x, long long &y, long long &d) {     if (!b) {       d = a;       x = 1;       y = 0;     } else {       exgcd(b, a % b, y, x, d);       y -= x * (a / b);     }   }   int dp[10025];   int main() {     int c, d, n, m, k, V, ans = inf;     scanf( %d%d , &c, &d);     scanf( %d%d , &n, &m);     scanf( %d , &k);     memset(dp, 0x3f, sizeof(dp));     dp[0] = 0;     for (int j = n; j <= n * m; ++j) {       dp[j] = min(dp[j], dp[j - n] + c);     }     for (int j = 1; j <= n * m; ++j) {       dp[j] = min(dp[j], dp[j - 1] + d);     }     for (int i = n * m - k; i <= n * m; ++i) {       ans = min(ans, dp[i]);     }     printf( %d n , ans);     return 0;   }   