SantaBot© Main Routine #1

Karma™

The current version of the Karma™ algorithm in the year 3000 somehow ends up considering everyone to be incredibly naughty. And in a sense, perhaps it’s completely right. But this is definitely not the kind of feedback we want to provide during Christmas festivities!

Since in the year 3000 every citizen accepts all browser cookies, as well as any terms and conditions without blinking twice, the SantaBot© surveillance system can track every action they do at all times.

Is this ethically correct? Nope.
Is this even legal? Probably not.
What we can say from the business perspective is that it definitely simplifies the process a lot!

But we are not here to judge. We are here to save Christmas!

Task

The goal of the Karma™ algorithm is to evaluate every action of each citizen fairly and calculate a karma number that will determine whether they have been naughty.

In order to accomplish this task, two files are provided:

  • profiles.csv [name, actions, ideal present categories]
  • karma.csv [action type, action]


The outcome of the Karma™ algorithm is the following output file:

  • challenge-1.csv [name, actions, karma, ideal present categories]


The karma numeric value has the following characteristics:

  • When zero or positive, it means the person has been nice and therefore has good karma.
  • When negative, it means the person has been naugthy and therefore has bad karma.
  • The karma value is calculated by observing every action associated with a person. Based on the categorization provided by the karma.csv file, some of those actions are nice, some of them are naughty. Each nice action adds one karma point. Each naughty action subtracts one karma point. The end result will be associated with this person in the output file.


Make sure your Karma™ algorithm generates a proper output file free of inconsistencies or bugs, since it will be necessary afterwards to figure out the Ideal Present™.

Now, go!
The future of the Christmas eve of the year 3000 is in your hands!​

Credits: El & the team at