вівторок, 28 лютого 2017 р.

Cache function

Имеется реализованная функция f(x), принимающая на вход целое число x, которая вычисляет некоторое целочисленое значение и возвращает его в качестве результата работы.
Функция вычисляется достаточно долго, ничего не выводит на экран, не пишет в файлы и зависит только от переданного аргумента x.
Напишите программу, которая вычисляет значение этой функции для n чисел. 
Для ускорения вычисления необходимо сохранять уже вычисленные значения функции при известных аргументах.
Обратите внимание, что в этой задаче установлено достаточно сильное ограничение в две секунды по времени исполнения кода на тесте. 
Формат ввода:
На первой строке находится число n  количество значений, на которых нужно посчитать функцию. После этого следует nстрок, на каждой строке по одному целому числу.
Формат вывода:
n строк, в каждой из которой результат вычисления функции на соответствующем аргументе.
Sample Input:
5
5
12
9
20
12
Sample Output:
11
41
47
61
41
 Так точно!
1
# Считайте, что функция f(x) уже определена выше. Определять её отдельно не требуется.
2
a = int(input())
3
b = {}
4
for i in range(a):
5
    s=int(input())
6
    if s in b.keys():
7
        print(b[s])
8
    else:
9
        b[s]=f(s)
10
        print(b[s])

неділя, 26 лютого 2017 р.

Jolly jumpers

Последовательность n>0 целых чисел называется jolly jumper в случае, если значения абсолютных разностей последовательных элементов принимают все возможные значения между 1 и n1
.
Например, последовательность 1 -3 -4 -1 1 является jolly jumper последовательностью, так как абсолютные разности равны 4 1 3 2, соответственно, а n1=4
.
Будем считать, что последовательность из одного числа является jolly jumper.
Напишите программу, которая проверяет, является ли введённая последовательность jolly jumper.
Формат ввода:
Строка, содержащая 1n10000
целых чисел, разделённых пробелом.
Формат вывода:
Одна строка, содержащая "Jolly" (без кавычек), если последовательность является jolly jumper и "Not jolly" в противном случае.
Sample Input 1:
1 -3 -4 -1 1
Sample Output 1:
Jolly
Sample Input 2:
1 3 5
Sample Output 2:
Not jolly
Sample Input 3:
4
Sample Output 3:
Jolly
 
 
 
Хорошие новости, верно!
1
a = list(map(int,input().split()))
2
b = [abs(a[i]-a[i+1]) for i in range(len(a)-1)]
3
if len(set(b))!=len(a)-1:
4
    print("Not jolly")
5
elif sum(b)!=(1+len(a)-1)/2*len(b):
6
    print("Not jolly")
7
else:
8
    print("Jolly")
 

5.10 Length translator

Требуется написать программу, осуществляющую преобразование из одних единиц измерения длины в другие.
Должны поддерживаться
  •  мили (1 mile = 1609 m), 
  • ярды (1 yard = 0.9144 m), 
  • футы (1 foot = 30.48 cm), 
  • дюймы (1 inch = 2.54 cm), 
  • километры (1 km = 1000 m), 
  • метры (m), 
  • сантиметры (1 cm = 0.01 m)
  • миллиметры (1 mm = 0.001 m)
Используйте именно указанные в формулировке задачи единицы измерения с указанной точностью.
Формат ввода:Одна строка с фразой следующего вида:<number> <unit_from> in <unit_to>например, если пришла фраза "15.5 mile in km", то требуется перевести 15.5 миль в километры.
Формат вывода:Дробное число в научном формате (экспоненциальном), с точностью ровно два знака после запятой.
Sample Input:
15.5 mile in km
Sample Output:
2.49e+01
 
 
a = list(input().split())
a[0]=float(a[0])
b = ["m","mile","yard","cm","foot","inch","km","mm"]
c = [1,1609,0.9144,0.01,0.3048,0.0254,1000,0.001]
d=c[b.index(a[1])]*a[0]
f = c[b.index(a[3])]
print("{:.2e}".format(d/f))
 
 ______________________________________________________________________________-_____________
 
a = list(input().split())
a[0] = float(a[0])
b = dict(m=1,mile=1609,yard=0.9144,cm=0.01,foot=0.3048,inch=0.0254,km=1000,mm=0.001)
print("{:.2e}".format(a[0]*b[a[1]]/b[a[3]])) 

 Feels the Magic(^-^)
 
 
 
 

неділя, 19 лютого 2017 р.

9.1 Durak

A durak deck contains 36 cards. Each card has a suit of either clubs, diamonds, hearts, or spades (denoted C, D, H, S). Each card also has a value of either 6 through 10, jack, queen, king, or ace (denoted 6, 7, 8, 9, 10, J, Q, K, A). For scoring purposes card values are ordered as above, with 6 having the lowest and ace the highest value.
Напишите программу, которая определяет, бьёт ли одна карта другую.
Если встречаются две карты одной масти, то побеждает та, у которой выше значение;
Если карты разных мастей, то карта, имеющая козырную масть, побеждает;
Если карты разных мастей и нет козырных, то никто не побеждает.
Формат ввода:На первой строке через пробел указываются две карты в формате <значение><масть>, а на следующей строке указывается козырная масть.
Формат вывода:Программа должна вывести слово First, если первая карта бьёт вторую, Second, если вторая карта бьёт первую,Error, если ни одна из карт не может побить другую.
Sample Input 1:
AH JH
D
Sample Output 1:
First
Sample Input 2:
AH JS
S
Sample Output 2:
Second
Sample Input 3:
7C 10H
S
Sample Output 3:
Error
Верно. Так держать!
1
cards = list(input().split(" "))
2
trump = input()
3
jacket = ["6", "7", "8", "9", "10", "J", "Q", "K", "A" ]
4
deck = list("CSDH")
5
if (cards[0][-1] not in deck) or (cards[1][-1] not in deck) or (trump not in deck):
6
    print("Error")
7
elif cards[0][-1]==trump and cards[1][-1]!=trump:
8
    #если масть первой карти соввпадает с мастью козиря ,
9
    #а масть второй карти не совпадает с козирем,то виводим первую карту
10
    print("First")
11
elif cards[0][-1]!=trump and cards[1][-1]==trump:
12
    #Если масть второй карти совпадает с козирем а первая масть с козирем не совпадает ,
13
    #то следует вивести вторую карту.
14
    print("Second")
15
elif cards[0][-1]==cards[1][-1]:
16
    if jacket.index(cards[0][:-1])>jacket.index(cards[1][:-1]):
17
    # Если инедкс значения первой карти больше за индекс значение второй карти 
18
    # при равних мастях карт,то выводить первую карту
19
        print("First")
20
    elif jacket.index(cards[0][:-1])<jacket.index(cards[1][:-1]):
21
    #Если индекс значения  первой карти меньше за индекс значеня второй карти 
22
    #при одинакових мастях следует вивести вторую карту
23
        print("Second")
24
    else:
25
        print("Error")
26
else:
27
    print("Error")
28