Gülməli funksiya
Biz rekursiyanı sevirik! Elə deyilmi?
Gəlin üç parametrli rekursiv w(a, b, c) funksiyasını nəzərdən keçirək:
Əgər a ≤ 0 və ya b ≤ 0 və ya c ≤ 0 olarsa, onda w(a, b, c) funksiyası 1 qaytarır.
Əgər a > 20 və ya b > 20 və ya c > 20 olarsa, onda w(a, b, c) funksiyası w(20, 20, 20) qaytarır.
Əgər a < b və b < c olarsa, onda w(a, b, c) funksiyası w(a, b, c - 1) + w(a, b - 1, c - 1) - w(a, b - 1, c) qaytarır.
Əks halda, w(a - 1, b, c) + w(a - 1, b - 1, c) + w(a - 1, b, c - 1) - w(a - 1, b - 1, c - 1) qaytarır.
Burada ən sadə realizasiya göstərilmişdir. Problem ondadır ki, əgər bu funksiyanı birbaşa həyata keçirsək, hətta a, b və c-nin kiçik qiymətləri üçün (məsələn, a = 15, b = 15, c = 15), proqram rekursiya səbəbindən saatlarla işləyəcək.
Giriş məlumatları
Hər bir sətir üç ədəd a, b, c ehtiva edir. Sonuncu sətir -1 -1 -1 ehtiva edir və işlənmir. Hər bir giriş üçlüyü üçün w(a, b, c) dəyərini hesablamalısınız.
Çıxış məlumatları
Hər bir üçlük üçün w(a, b, c) dəyərini çıxış edin.