#include <iostream>
using namespace std;

int main()
{
  // Prompt the user to enter filing status
  cout << "(0-single filer, 1-married jointly, " 
       << "or qualifying widow(er)," << endl
       << "2-married separately, 3-head of household)" << endl
       << "Enter the filing status: ";

  int status;
  cin >> status;

  // Prompt the user to enter taxable income
  cout << "Enter the taxable income: ";
  double income;
  cin >> income;

  // Compute tax
  double tax = 0;

  if (status == 0) // Compute tax for single filers
  { 
    if (income <= 8350)
      tax = income * 0.10;
    else if (income <= 33950)
      tax = 8350 * 0.10 + (income - 8350) * 0.15;
    else if (income <= 82250)
      tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
        (income - 33950) * 0.25;
    else if (income <= 171550)
      tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
        (82250 - 33950) * 0.25 + (income - 82250) * 0.28;
    else if (income <= 372950)
      tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
        (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
        (income - 171550) * 0.33;
    else
      tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
        (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
        (372950 - 171550) * 0.33 + (income - 372950) * 0.35;
  }
  else if (status == 1) // Compute tax for married file jointly
  { 
    // Left as exercise
  }
  else if (status == 2) // Compute tax for married separately
  { 
    // Left as exercise
  }
  else if (status == 3) // Compute tax for head of household
  { 
    // Left as exercise
  }
  else 
  {
    cout << "Error: invalid status";
    return 0;
  }

  // Display the result
  cout << "Tax is " << static_cast<int>(tax * 100) / 100.0 << endl;

  return 0;
}