- You reach 80% market share.
- You have the most market share after 100 turns.
This puzzle can be solved using the following concepts. Practice using these concepts and improve your skills.
Source code is accessible here.
To sell your software you will have to recruit employees and give them orders.
The game stands for 100 turns unless a start-up reaches 80% market share and wins.
Each turn following actions are performed:
- Recruitment : increasing or decreasing employees
- Pay : Your cash increases and all employees receive their pay (including new ones)
- Development: new features are developed (and new bugs appear)
- Sales : sellers sell your software, increasing your market share
Your can recruit different types of employees:
There are limitations, each turn you can:
- Recruit or fire maximum 1 manager
- Recruit devs and sellers knowing that
devsToRecruit + sellersToRecruit ≤ 2 × totalManagersOfYourStartUp
- Your total employees count must stay under
10 × totalManagersOfYourStartUp. Where employees count is your total number of developers and sellers
Each turn, first your cash increases proportionally to your market share, your income will be given in input. Second, employees don't work for free, you will have to pay them:
- Developers :
- Sellers :
- Managers :
During this phase you will have to choose wisely the proportion of developers assigned to development and maintenance.
New bugs appear! Indeed, for the next
Note: tests will always increase by the number of developers affected to maintenance, event if there is no bug.
First of all, you have to know that your start-up has a
Market is always growing, each turn all start-ups have their market share reduced to 95% of their initial value to represent arrival of new clients.
Also you can sell your software only if you have at least 10 features.
Phase 1 - Unfilled market:
Where availableUnfilledMarket is the minimum between
The part of market share acquired this way is protected during this turn from competitive market (it cannot be stolen by competitors for this turn).
Phase 2 - Competitive market
If reputation of start-up A is equal or greater than reputation of start-up B then start-up A will steal market share from start-up B calculated by:
stolenMarketShare = minimum between
Instead of fighting everyone you can decide to focus on only one competitor in this case stolenMarket will be calculated by (if your reputation is equal or greater):
stolenMarketShare = minimum between
- cash =
- managers =
- devs =
- sellers =
- Your program input not well formatted.
- Your program input is invalid.
- An other start-up reaches 80% market share.
- Your program doesn't provide an input.
Employees outside this ratio may change their affectation by:
- doing the action you intend to - 25% chance
- doing a different action - 25% chance (devs will switch from features to maintenance, sellers from unfilled market to competitive market)
- doing nothing - 50% chance
Note : If you have 4 times more tests than features you can't have bugs anymore.
e^(-0.3 × t) values:
- t = 1 : 0.740
- t = 2 : 0.549
- t = 3 : 0.407
- t = 4 : 0.301
- t = 5 : 0.223
- t = 6 : 0.165
- t = 7 : 0.122
- t = 8 : 0.091
- t = 9 : 0.067
Maximum value of reputation is capped at 2000
If you fix bugs when your market share is equal to 0 it will not affect your reputation (No harm seen, no harm done!)
NoteDevelopers and sellers work as soon as they are recruited. Managers start to work next turn after they are recruited.
Line 1 : 11 integers id, playerCount, turn, income, cash, devs, sellers, managers, features, tests and bugs where:
- id : your startUp id
- playerCount : number of players
- turn : number of turn since the beginning
- income : your income for this turn
- cash : cash of your start-up
- devs : developers employees of your start-up
- sellers : sellers employees of your start-up
- managers : managers employees of your start-up
- features : features developed in your software
- tests : tests developed in your software
- bugs : bugs in your software
playerCount following lines : one line for each player. First line is for player 0, next one for player 1, etc. Each line contains 3 integers startUpId start-up id, marketShare start-up market share in thousandths and reputation start-up reputation
Constraints for output values:
- -1 ≤
devsToHire| + | sellersToHire| ≤ 2 × managers where |n| means absolute value of n
- 0 ≤
maintenanceDevs≤ devs + devsToHire
- 0 ≤
competitiveSellers≤ sellers + sellersToHire
- devs +
devsToHire+ sales + salesToHire≤ 10 × managers
Beware tests number can be increased only if a feature already exists or has been developed during the turn.
A higher resolution is required to access the IDE