Library Fine

Problem Statement

The Head Librarian at a library wants you to make a program that calculates the fine for returning the book after the return date. You are given the actual and the expected return dates. Calculate the fine as follows:

  1. If the book is returned on or before the expected return date, no fine will be charged, in other words fine is 0.
  2. If the book is returned in the same month as the expected return date, Fine = 15 Hackos × Number of late days
  3. If the book is not returned in the same month but in the same year as the expected return date, Fine = 500 Hackos × Number of late months
  4. If the book is not returned in the same year, the fine is fixed at 10000 Hackos.

Input Format

You are given the actual and the expected return dates in D M Y format respectively. There are two lines of input. The first line contains the D M Y values for the actual return date and the next line contains the D M Y values for the expected return date.

Constraints
1D31
1M12
1Y3000

Output Format

Output a single value equal to the fine.

Sample Input

9 6 2015
6 6 2015

Sample Output

45

Explanation

Since the actual date is 3 days later than expected, fine is calculated as 15×3=45 Hackos.

Solution

  
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    int d1,d2,m1,m2,y1,y2;
    cin>>d2>>m2>>y2;
    cin>>d1>>m1>>y1;
    if(y2>y1)
    {
        cout<<10000;
        exit;
    }
    else if(y1==y2 && m2>m1)
        {
        cout<<(m2-m1)*500;
    }
    else if (y1==y2 && m2==m1 && d2>d1)
        cout<<(d2-d1)*15;
    else cout<<0;
    return 0;
}


Leave a Reply