# your code goes here#!/usr/bin/env python3

import abc

class Strategy(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def check_temperature(self, temperature):
        pass


class HikeStrategy(Strategy):
    def check_temperature(self, temperature):
        if temperature >= 20 and temperature <= 40:
            return True
        else:
            return False


class SkiStrategy(Strategy):
    def check_temperature(self, temperature):
        if temperature <= 0:
            return True
        else:
            return False

class Context:
    def __init__(self, temperature, strategy, action_name):
        self.temperature = temperature
        self.strategy = strategy
        self.action_name = action_name

    def output_result(self):
    	print('temperature: ' + str(self.temperature))
    	print('action name: ' + str(self.action_name))
    	print('result: ' + str(self.strategy.check_temperature(self.temperature)), end='\n\n')


if __name__ == '__main__':
    context = Context(25, SkiStrategy(), 'ski')
    context.output_result()

    context = Context(25, HikeStrategy(), 'hike')
    context.output_result()

    context = Context(-20, SkiStrategy(), 'ski')
    context.output_result()

    context = Context(-20, HikeStrategy(), 'hike')
    context.output_result()    