Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let input = [
- '@@@xx@*',
- '1 -1 -1 4',
- ];
- let print = this.print || console.log;
- let gets = this.gets || ((arr, index) => () => arr[index++])(input, 0);
- let n = gets()
- let ways = gets().split(' ').map(Number)
- let path = Array.from(n)
- let pathlenght = path.length
- const soul = '@';
- const food = '*';
- const deadlock = 'x';
- const eaten = '_'
- let soulsCollected = 0
- let foodCollected = 0
- let deadLocks = 0
- let currPosition = 0
- let output = ''
- let jumpsCounter = 0
- let isdead = false
- for(let i = 0 ; i<= ways.length;i++){
- switch(path[currPosition]){
- case '@':
- soulsCollected++;
- path[currPosition] = eaten;
- break;
- case '*':
- foodCollected++;
- path[currPosition] = eaten;
- break;
- case 'x':
- if(currPosition % 2 == 0){
- if(soulsCollected >0){
- soulsCollected--
- deadLocks++
- path[currPosition] = soul
- }else{
- output += 'You are deadlocked, you greedy kitty!'
- output += '\n'
- output+= `Jumps before deadlock:${jumpsCounter}`
- isdead = true
- break
- }
- }else{
- if(foodCollected > 0){
- foodCollected--
- deadLocks++
- path[currPosition] = soul
- }else{
- output += 'You are deadlocked, you greedy kitty!'
- output += '\n'
- output+= `Jumps before deadlock:${jumpsCounter}`
- isdead = true
- break
- }
- }
- break;
- default:
- break
- }
- ++jumpsCounter
- currPosition += ways[i]
- if(currPosition<0){
- currPosition = pathlenght + currPosition
- } else if (currPosition > pathlenght){
- currPosition = currPosition - pathlenght
- }
- }
- if(isdead){
- print(output)
- }else{
- print(`Coder souls collected: ${soulsCollected}`)
- print(`Food collected: ${foodCollected}`)
- print(`Deadlocks: ${deadLocks}`)
- }
Advertisement
Add Comment
Please, Sign In to add comment