Saturday, February 13, 2016

【CodeChef】ATM

Problem here

All submissions for this problem are available.

Pooja would like to withdraw X $US from an ATM. The cash machine will only accept the transaction if Xis a multiple of 5, and Pooja’s account balance has enough cash to perform the withdrawal transaction (including bank charges). For each successful withdrawal the bank charges 0.50 $US. Calculate Pooja’s account balance after an attempted transaction.

Input

Positive integer 0 < X <= 2000 – the amount of cash which Pooja wishes to withdraw.
Nonnegative number 0<= Y <= 2000 with two digits of precision – Pooja’s initial account balance.

Output

Output the account balance after the attempted transaction, given as a number with two digits of precision. If there is not enough money in the account to complete the transaction, output the current bank balance.

Example – Successful Transaction

Input:
30 120.00

Output:
89.50

Example – Incorrect Withdrawal Amount (not multiple of 5)

Input:
42 120.00

Output:
120.00

Example – Insufficient Funds

Input:
300 120.00

Output:
120.00

Solution

if….else…
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
int main(){
    double n, m;
    while(cin >> n >> m){
        double ans, c;
        if(n+0.5 <= m){
            c = fmod(n, 5);
            if(c == 0){
                ans = m - n - 0.5;
                cout << fixed << setprecision(2) << ans << endl;
            }else{
                cout << fixed << setprecision(2) << m << endl;
            }
        }else{
            cout << fixed << setprecision(2) << m << endl;
        }
    }
     
    return 0;
}

No comments:

Post a Comment