TopcoderArchiveVisit Topcoder
SRM22 Dec 2013
SRM 612

EmoticonsDiv1

Problem statement, definition, constraints, and public examples.

Problem Statement

You are very happy because you advanced to the next round of a very important programming contest. You want your best friend to know how happy you are. Therefore, you are going to send him a lot of smile emoticons. You are given an int smiles: the exact number of emoticons you want to send.

You have already typed one emoticon into the chat. Then, you realized that typing is slow. Instead, you will produce the remaining emoticons using copy, paste, and possibly some deleting.

You can only do three different operations:
  1. Copy all the emoticons you currently have into the clipboard.
  2. Paste all emoticons from the clipboard.
  3. Delete one emoticon from the message.
Each operation takes precisely one second. Copying replaces the old content of the clipboard. Pasting does not empty the clipboard. You are not allowed to copy just a part of the emoticons you already have. You are not allowed to delete an emoticon from the clipboard.

Return the smallest number of seconds in which you can turn the one initial emoticon into smiles emoticons.

Definition

Class:
EmoticonsDiv1
Method:
printSmiles
Parameters:
int
Returns:
int
Method signature:
int printSmiles(int smiles)
(be sure your method is public)

Constraints

  • smiles will be between 2 and 1000, inclusive.

Examples

  1. 2
    Returns: 2
    First use copy, then use paste. The first operation copies one emoticon into the clipboard, the second operation pastes it into the message, so now you have two emoticons and you are done.
  2. 4
    Returns: 4
    One optimal solution is to copy the initial emoticon and then to paste it three times. Another optimal solution is to copy the one emoticon, paste it, copy the two emoticons you currently have, and paste two more.
  3. 6
    Returns: 5
    Copy. This puts one emoticon into the clipboard. Paste. You now have 2 emoticons in the message. Copy. The clipboard now contains 2 emoticons. Paste. You now have 4 emoticons in the message. Paste. You now have 6 emoticons in the message and you are done.
  4. 18
    Returns: 8
  5. 11
    Returns: 8
    Sometimes we actually do delete an emoticon in the optimal solution.
Back to all problems