90 по информатике решить на pascal или c++ вася переехал из своего родного города и скучает по старым друзьям. к сожалению, вася снимает маленькую квартиру и одновременно в гости к нему может приехать только один друг. каждый друг сказал васе два числа a и b - с какого по какой день он может приехать в гости. каждый друг приезжает и уезжает в полдень. каждый друг может приехать к васе только один раз и остаться у него на несколько дней. вася хотел бы, чтобы суммарное количество дней, когда у него в гостях есть кто-нибудь из друзей, было максимальным. ему определить даты приезда для каждого из друзей так, чтобы они не пересекались (допустима ситуация, что в один день один из друзей приезжает, а другой - уезжает) и суммарное время, когда у васи в гостях есть кто-то из друзей, было максимальным. формат входных данных: в первой строке записаны целое число n (1 ≤ n ≤ 100000) - количество друзей васи. в следующих n строках записано по два целых числа ai и bi (оба числа от 1 до 109) - возможное время приезда i-го друга. формат результата: выведите n пар чисел li и ri - номера дней, в которые приедет и уедет i-й друг соответственно (ai ≤ li ≤ ri ≤ bi). если i-го друга приглашать не нужно, выведите пару чисел -1 -1. если правильных ответов несколько - выведите любой из них.
стандартный ввод стандартный вывод
3
1 2
2 4
3 5
1 2
3 4
5 5
3
2 3
1 4
3 5
-1 -1
1 4
5 5
1)32/2=16(0) 64/2=32(0)
16/2=8(0) 32/2=16(0)
8/2=4(0) 16/2=8(0)
4/2=2(0) 8/2=4(0)
2/2=1(0) 4/2=2(0)
1/2=0(1) 2/2=1(0)
1/2=0(1) ответ: 100000.1000000
2)40/2=20(0) 5/2=2(1)
20/2=10 (0) 2/2=1(0)
10/2=5(0) 1/2=0(1)
5/2=2(1)
2/2=1(0)
1/2=0(1) ответ: 101000.101
3)31/2=15(1) 75/2=37(1)
15/2=7(1) 37/2=18(1)
7/2=3(1) 18/2=9(0)
3/2=1(1) 9/2=4(1)
1/2=0(1) 4/2=2(0)
2/2=1(0)
1/2=0(1) ответ: 11111.1001011
4)
315/2=157(1)
157/2=78(1)
78/2=39(0)
39/2=19(1)
19/2=9(1)
9/2=4(1)
4/2=2(0)
2/2=1(0)
1/2=0(1)
1875/2=937(1)
937/2=468(1)
468/2=234(0)
234/2=117(0)
117/2=58(1)
58/2=29(0)
29/2=14(1)
14/2=7(0)
7/2=3(1)
3/2=1(1)
1/2=0(1) ответ: 100111011.11101010011
сначала надо перевести число до запятой а потом после
для начала определим что такое разряд числа. разряд это порядковый номер цифры, и счет начинается с запятой, отделяющей дробь, счет начинается с 0 разряда до последней цифры. например, число 1234,0: 0 разряд - 4, 1 разряд - 3, 2 разряд - 2 и 3 разряд единица.
теперь определимся как переводить из 16й в 10ю. для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
т.е.:
чтобы перевести буквы в числа надо воспользоваться списком:
a=10; b=11; c=12; d=13; e=14; f=15
теперь расмотрим данные нам числа: