From ca2ca71f63708643abc8af88698e8d4717f01798 Mon Sep 17 00:00:00 2001 From: Vlad Utkin Date: Thu, 5 Oct 2017 13:08:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B8=20=D0=BD=D0=B0=205.10.17=2013:00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uts/session_py/1.py | 41 ++++ uts/session_py/10.py | 13 ++ uts/session_py/18.02.17.py | 8 + uts/session_py/2.py | 7 + uts/session_py/3.py | 41 ++++ uts/session_py/4.py | 10 + uts/session_py/5.py | 9 + uts/session_py/6.py | 19 ++ uts/session_py/7.py | 10 + uts/session_py/8.py | 11 ++ uts/session_py/9.py | 13 ++ uts/session_py/B.py | 26 +++ uts/session_py/C.py | 10 + uts/session_py/Check.py | 18 ++ uts/session_py/E.py | 35 ++++ uts/session_py/J.py | 4 + uts/session_py/O2017_MT/kek.in | 2 + uts/session_py/O2017_MT/УВВ_ZZ1.py | 18 ++ uts/session_py/calendar.in | 3 + uts/session_py/dist_march_2k17/Business.py | 20 ++ uts/session_py/dist_march_2k17/Peter.py | 26 +++ uts/session_py/dist_march_2k17/Sherlock.py | 24 +++ uts/session_py/dist_march_2k17/String.py | 16 ++ uts/session_py/dist_march_2k17/input.txt | 1 + uts/session_py/input.txt | 6 + uts/session_py/output.txt | 1 + uts/session_py/sta.txt | 9 + uts/some_cpp/askquestion.cpp | 52 +++++ uts/some_cpp/session | 1 + uts/uts_17_aut_py/1/A.py | 14 ++ uts/uts_17_aut_py/1/B.py | 7 + uts/uts_17_aut_py/1/C.py | 14 ++ uts/uts_17_aut_py/1/D.py | 8 + uts/uts_17_aut_py/1/E.py | 2 + uts/uts_17_aut_py/1/F.py | 5 + uts/uts_17_aut_py/1/G.py | 8 + uts/uts_17_aut_py/1/H.py | 4 + uts/uts_17_aut_py/1/I.py | 5 + uts/uts_17_aut_py/1/J.py | 11 ++ uts/uts_17_aut_py/1/K.py | 8 + uts/uts_17_aut_py/1/L.py | 9 + uts/uts_17_aut_py/2/A.py | 4 + uts/uts_17_aut_py/2/B.py | 9 + uts/uts_17_aut_py/2/C.py | 11 ++ uts/uts_17_aut_py/2/G.py | 1 + uts/uts_17_aut_py/3/A.py | 23 +++ uts/uts_17_aut_py/3/A_RUSH.py | 24 +++ uts/uts_17_aut_py/3/A_RUSH_Z.py | 23 +++ uts/uts_17_aut_py/3/A_TYP.py | 17 ++ uts/uts_17_aut_py/3/B.py | 33 ++++ uts/uts_17_aut_py/oop.py | 22 +++ uts/uts_17_aut_py/test_02.py | 38 ++++ uts/uts_17_aut_py/test_03.py | 46 +++++ uts/uts_17_aut_py/test_04.py | 20 ++ uts/uts_17_aut_py/test_05.py | 35 ++++ uts/uts_2017_aut_cpp/CMakeLists.txt | 13 ++ uts/uts_2017_aut_cpp/main.cpp | 48 +++++ uts/uts_2017_sum_cpp/3/B.cpp | 40 ++++ uts/uts_2017_sum_cpp/3/count.in | 1 + uts/uts_2017_sum_cpp/4/A.cpp | 63 ++++++ uts/uts_2017_sum_cpp/4/A.txt | 6 + uts/uts_2017_sum_cpp/4/B.cpp | 71 +++++++ uts/uts_2017_sum_cpp/4/B.txt | 11 ++ uts/uts_2017_sum_cpp/4/LCA.pdf | Bin 0 -> 111293 bytes uts/uts_2017_sum_cpp/4/read.cpp | 83 ++++++++ uts/uts_2017_sum_cpp/5/A.cpp | 26 +++ uts/uts_2017_sum_cpp/5/A.txt | 2 + uts/uts_2017_sum_cpp/5/C.cpp | 3 + uts/uts_2017_sum_cpp/CMakeLists.txt | 11 ++ uts/uts_2017_sum_cpp/main.cpp | 8 + .../C_Redact_rast/C_Redact_rast.csproj | 44 +++++ .../C_Redact_rast/C_Redact_rast.csproj.user | 7 + uts/uts_2017_sum_cs/C_Redact_rast/Program.cs | 56 ++++++ .../C_Redact_rast/Properties/AssemblyInfo.cs | 26 +++ uts/uts_2017_sum_cs/C_Redact_rast/distance.in | 2 + uts/uts_2017_sum_cs/aye/Program.cs | 13 ++ .../aye/Properties/AssemblyInfo.cs | 26 +++ uts/uts_2017_sum_cs/aye/aye.csproj | 39 ++++ uts/uts_2017_sum_cs/uts_2017_sum.sln | 23 +++ uts/uts_2017_sum_cs/uts_2017_sum.userprefs | 14 ++ uts/uts_2017_sum_py/1/RAW.py | 180 ++++++++++++++++++ uts/uts_2017_sum_py/1/RZ2T_8.py | 21 ++ uts/uts_2017_sum_py/1/RZ2T_9.py | 72 +++++++ uts/uts_2017_sum_py/1/input.txt | 6 + uts/uts_2017_sum_py/2/RZ2T(SAM)_7.py | 55 ++++++ uts/uts_2017_sum_py/2/RZ2T(SAM)_8.py | 29 +++ uts/uts_2017_sum_py/2/ads.py | 14 ++ uts/uts_2017_sum_py/2/das | 29 +++ uts/uts_2017_sum_py/2/input.txt | 16 ++ uts/uts_2017_sum_py/3/A.py | 40 ++++ uts/uts_2017_sum_py/3/B.py | 17 ++ uts/uts_2017_sum_py/3/balls.in | 6 + uts/uts_2017_sum_py/3/count.in | 1 + uts/uts_2017_sum_py/5/C.py | 24 +++ uts/uts_2017_sum_py/5/D.py | 34 ++++ uts/uts_2017_sum_py/5/rectangles.in | 5 + uts/uts_2017_sum_py/5/robot.in | 1 + uts/uts_2k17_march_py/DER/A | Bin 0 -> 14080 bytes uts/uts_2k17_march_py/DER/A.cpp | 75 ++++++++ uts/uts_2k17_march_py/DER/A.py | 42 ++++ uts/uts_2k17_march_py/DER/sum.in | 10 + uts/uts_2k17_march_py/Dun/A.py | 9 + uts/uts_2k17_march_py/Dun/B.py | 14 ++ uts/uts_2k17_march_py/Dun/C.py | 5 + uts/uts_2k17_march_py/Dun/D.py | 18 ++ uts/uts_2k17_march_py/Dun/E.py | 22 +++ uts/uts_2k17_march_py/Dun/H.py | 9 + uts/uts_2k17_march_py/Dun/combs.in | 1 + uts/uts_2k17_march_py/Dun/field.in | 3 + uts/uts_2k17_march_py/Dun/goat.in | 5 + uts/uts_2k17_march_py/Dun/mushroom.in | 6 + uts/uts_2k17_march_py/Dun/patterns.in | 2 + uts/uts_2k17_march_py/Dun/slalom.in | 5 + uts/uts_2k17_march_py/Str/A.py | 55 ++++++ uts/uts_2k17_march_py/Str/B.py | 7 + uts/uts_2k17_march_py/Str/C.py | 5 + uts/uts_2k17_march_py/Str/D.py | 4 + uts/uts_2k17_march_py/Str/double.in | 2 + uts/uts_2k17_march_py/Str/strings.in | 2 + uts/uts_2k17_march_py/Str/substr.in | 1 + 120 files changed, 2343 insertions(+) create mode 100644 uts/session_py/1.py create mode 100644 uts/session_py/10.py create mode 100644 uts/session_py/18.02.17.py create mode 100644 uts/session_py/2.py create mode 100644 uts/session_py/3.py create mode 100644 uts/session_py/4.py create mode 100644 uts/session_py/5.py create mode 100644 uts/session_py/6.py create mode 100644 uts/session_py/7.py create mode 100644 uts/session_py/8.py create mode 100644 uts/session_py/9.py create mode 100644 uts/session_py/B.py create mode 100644 uts/session_py/C.py create mode 100644 uts/session_py/Check.py create mode 100644 uts/session_py/E.py create mode 100644 uts/session_py/J.py create mode 100644 uts/session_py/O2017_MT/kek.in create mode 100644 uts/session_py/O2017_MT/УВВ_ZZ1.py create mode 100644 uts/session_py/calendar.in create mode 100644 uts/session_py/dist_march_2k17/Business.py create mode 100644 uts/session_py/dist_march_2k17/Peter.py create mode 100644 uts/session_py/dist_march_2k17/Sherlock.py create mode 100644 uts/session_py/dist_march_2k17/String.py create mode 100644 uts/session_py/dist_march_2k17/input.txt create mode 100644 uts/session_py/input.txt create mode 100644 uts/session_py/output.txt create mode 100644 uts/session_py/sta.txt create mode 100644 uts/some_cpp/askquestion.cpp create mode 160000 uts/some_cpp/session create mode 100644 uts/uts_17_aut_py/1/A.py create mode 100644 uts/uts_17_aut_py/1/B.py create mode 100644 uts/uts_17_aut_py/1/C.py create mode 100644 uts/uts_17_aut_py/1/D.py create mode 100644 uts/uts_17_aut_py/1/E.py create mode 100644 uts/uts_17_aut_py/1/F.py create mode 100644 uts/uts_17_aut_py/1/G.py create mode 100644 uts/uts_17_aut_py/1/H.py create mode 100644 uts/uts_17_aut_py/1/I.py create mode 100644 uts/uts_17_aut_py/1/J.py create mode 100644 uts/uts_17_aut_py/1/K.py create mode 100644 uts/uts_17_aut_py/1/L.py create mode 100644 uts/uts_17_aut_py/2/A.py create mode 100644 uts/uts_17_aut_py/2/B.py create mode 100644 uts/uts_17_aut_py/2/C.py create mode 100644 uts/uts_17_aut_py/2/G.py create mode 100644 uts/uts_17_aut_py/3/A.py create mode 100644 uts/uts_17_aut_py/3/A_RUSH.py create mode 100644 uts/uts_17_aut_py/3/A_RUSH_Z.py create mode 100644 uts/uts_17_aut_py/3/A_TYP.py create mode 100644 uts/uts_17_aut_py/3/B.py create mode 100644 uts/uts_17_aut_py/oop.py create mode 100644 uts/uts_17_aut_py/test_02.py create mode 100644 uts/uts_17_aut_py/test_03.py create mode 100644 uts/uts_17_aut_py/test_04.py create mode 100644 uts/uts_17_aut_py/test_05.py create mode 100644 uts/uts_2017_aut_cpp/CMakeLists.txt create mode 100644 uts/uts_2017_aut_cpp/main.cpp create mode 100644 uts/uts_2017_sum_cpp/3/B.cpp create mode 100644 uts/uts_2017_sum_cpp/3/count.in create mode 100644 uts/uts_2017_sum_cpp/4/A.cpp create mode 100644 uts/uts_2017_sum_cpp/4/A.txt create mode 100644 uts/uts_2017_sum_cpp/4/B.cpp create mode 100644 uts/uts_2017_sum_cpp/4/B.txt create mode 100644 uts/uts_2017_sum_cpp/4/LCA.pdf create mode 100644 uts/uts_2017_sum_cpp/4/read.cpp create mode 100644 uts/uts_2017_sum_cpp/5/A.cpp create mode 100644 uts/uts_2017_sum_cpp/5/A.txt create mode 100644 uts/uts_2017_sum_cpp/5/C.cpp create mode 100644 uts/uts_2017_sum_cpp/CMakeLists.txt create mode 100644 uts/uts_2017_sum_cpp/main.cpp create mode 100644 uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj create mode 100644 uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj.user create mode 100644 uts/uts_2017_sum_cs/C_Redact_rast/Program.cs create mode 100644 uts/uts_2017_sum_cs/C_Redact_rast/Properties/AssemblyInfo.cs create mode 100644 uts/uts_2017_sum_cs/C_Redact_rast/distance.in create mode 100644 uts/uts_2017_sum_cs/aye/Program.cs create mode 100644 uts/uts_2017_sum_cs/aye/Properties/AssemblyInfo.cs create mode 100644 uts/uts_2017_sum_cs/aye/aye.csproj create mode 100644 uts/uts_2017_sum_cs/uts_2017_sum.sln create mode 100644 uts/uts_2017_sum_cs/uts_2017_sum.userprefs create mode 100644 uts/uts_2017_sum_py/1/RAW.py create mode 100644 uts/uts_2017_sum_py/1/RZ2T_8.py create mode 100644 uts/uts_2017_sum_py/1/RZ2T_9.py create mode 100644 uts/uts_2017_sum_py/1/input.txt create mode 100644 uts/uts_2017_sum_py/2/RZ2T(SAM)_7.py create mode 100644 uts/uts_2017_sum_py/2/RZ2T(SAM)_8.py create mode 100644 uts/uts_2017_sum_py/2/ads.py create mode 100644 uts/uts_2017_sum_py/2/das create mode 100644 uts/uts_2017_sum_py/2/input.txt create mode 100644 uts/uts_2017_sum_py/3/A.py create mode 100644 uts/uts_2017_sum_py/3/B.py create mode 100644 uts/uts_2017_sum_py/3/balls.in create mode 100644 uts/uts_2017_sum_py/3/count.in create mode 100644 uts/uts_2017_sum_py/5/C.py create mode 100644 uts/uts_2017_sum_py/5/D.py create mode 100644 uts/uts_2017_sum_py/5/rectangles.in create mode 100644 uts/uts_2017_sum_py/5/robot.in create mode 100755 uts/uts_2k17_march_py/DER/A create mode 100644 uts/uts_2k17_march_py/DER/A.cpp create mode 100644 uts/uts_2k17_march_py/DER/A.py create mode 100644 uts/uts_2k17_march_py/DER/sum.in create mode 100644 uts/uts_2k17_march_py/Dun/A.py create mode 100644 uts/uts_2k17_march_py/Dun/B.py create mode 100644 uts/uts_2k17_march_py/Dun/C.py create mode 100644 uts/uts_2k17_march_py/Dun/D.py create mode 100644 uts/uts_2k17_march_py/Dun/E.py create mode 100644 uts/uts_2k17_march_py/Dun/H.py create mode 100644 uts/uts_2k17_march_py/Dun/combs.in create mode 100644 uts/uts_2k17_march_py/Dun/field.in create mode 100644 uts/uts_2k17_march_py/Dun/goat.in create mode 100644 uts/uts_2k17_march_py/Dun/mushroom.in create mode 100644 uts/uts_2k17_march_py/Dun/patterns.in create mode 100644 uts/uts_2k17_march_py/Dun/slalom.in create mode 100644 uts/uts_2k17_march_py/Str/A.py create mode 100644 uts/uts_2k17_march_py/Str/B.py create mode 100644 uts/uts_2k17_march_py/Str/C.py create mode 100644 uts/uts_2k17_march_py/Str/D.py create mode 100644 uts/uts_2k17_march_py/Str/double.in create mode 100644 uts/uts_2k17_march_py/Str/strings.in create mode 100644 uts/uts_2k17_march_py/Str/substr.in diff --git a/uts/session_py/1.py b/uts/session_py/1.py new file mode 100644 index 0000000..4d7dcfb --- /dev/null +++ b/uts/session_py/1.py @@ -0,0 +1,41 @@ +from random import randint +#x=int(input()) +#y=int(input()) +x=10 +y=10 +sum=0; +maxoffset = 0; +cordx=0; +cordy=0; +mini = min(x,y) +mass = [[randint(0,1) for i in range(x)] for o in range(y)] +for i in range(y): + print(mass[i]) +for i in range(y): + for o in range(x): + if mass[i][o] == 0: + sum=0; + ii = 0; + #print("found zero at ",o,i) + for ii in range(mini): + if ii+o >= x: + break + if ii+i >= y: + break + sum = sum + mass[i + ii][o + ii] + for oo in range(ii): + sum = sum + mass[i+ii][o+oo] + sum = sum + mass[i+oo][o+ii] + if sum != 0: + break + #print("end zero at offset", ii) + if (maxoffset< ii): + maxoffset = ii + cordx = o + cordy = i + #print("!write bigger offset") +print(cordx+1, cordy+1, cordx+maxoffset, cordy+maxoffset) +print('these numbers should be zeroes') +for i in range(cordy,cordy+maxoffset): + for o in range(cordx,cordx+maxoffset): + print(mass[i][o]) \ No newline at end of file diff --git a/uts/session_py/10.py b/uts/session_py/10.py new file mode 100644 index 0000000..10c7fd0 --- /dev/null +++ b/uts/session_py/10.py @@ -0,0 +1,13 @@ +from random import * +from math import * + +n = 10000 +k = 0 + +for i in range(n): + x = uniform(-sqrt(2)/3, sqrt(2)/3) + y = uniform(-sqrt(2)/3, sqrt(2)/3) + z = uniform(-sqrt(2)/3, sqrt(2)/3) + if (): + k+=1 +print(k/n) diff --git a/uts/session_py/18.02.17.py b/uts/session_py/18.02.17.py new file mode 100644 index 0000000..9f4b550 --- /dev/null +++ b/uts/session_py/18.02.17.py @@ -0,0 +1,8 @@ +import sys +sys.stdin = open("sta.txt", "r") + +sta, n = list(map(int, input().split())) +s = [] +for i in range(sta): + s.append(input()) +print(s) diff --git a/uts/session_py/2.py b/uts/session_py/2.py new file mode 100644 index 0000000..6f38e24 --- /dev/null +++ b/uts/session_py/2.py @@ -0,0 +1,7 @@ +n=7 +mass = [[1 for i in range(n)]] +current_max = 1; +print(mass) +for i in range(1,n): + current_max = current_max +1; + cur_list = mass[i-1] diff --git a/uts/session_py/3.py b/uts/session_py/3.py new file mode 100644 index 0000000..223ed81 --- /dev/null +++ b/uts/session_py/3.py @@ -0,0 +1,41 @@ +import sys + +problem_name = str('calendar') +sys.stdin = open(problem_name + ".in", "r") +# sys.stdout = open(problem_name+".out", "w") + +def get_mass(num): + arr = [] + n = num + while n > 0: + arr.append(n%10) + n = n//10 + return arr + +def bad_char(start, end, bad): + counterr = 0 + for day in range(start, end): + an = get_mass(day) + for nu in num: + if nu in an: + counterr += 1 + return counterr + + +n, k = map(int, input().split()) +a = list(map(int, input().split())) +num = list(map(int, input().split())) +print(n,' ',k) +counter = 0 +a.sort() +print(a) +lastmas = 0 +lastcount = 0 + +for mounth in a: + if lastmas == mounth: + counter = counter + lastcount + else: + counter = counter + lastcount + lastcount + bad_char(lastmas, mounth, num) + lastmas = mounth +print(counter) \ No newline at end of file diff --git a/uts/session_py/4.py b/uts/session_py/4.py new file mode 100644 index 0000000..c06fc08 --- /dev/null +++ b/uts/session_py/4.py @@ -0,0 +1,10 @@ +import sys +sys.stdin = open("input.txt", "r") +sys.stdout = open("output.txt", "w") +n = int(input()) +count = 0 +for i in range(n): + for j in list(map(int, input().split())): + count = count + j +count = count / 2 +print(int(count)) \ No newline at end of file diff --git a/uts/session_py/5.py b/uts/session_py/5.py new file mode 100644 index 0000000..7add913 --- /dev/null +++ b/uts/session_py/5.py @@ -0,0 +1,9 @@ +import sys +sys.stdin = open("input.txt", "r") +sys.stdout = open("output.txt", "w") +n, m = map(int, input().split()) +n_mas = [0 for i in range(n)] +for i in range(m): + for j in list(map(int, input().split())): + n_mas[j-1] += 1 +print(*n_mas) \ No newline at end of file diff --git a/uts/session_py/6.py b/uts/session_py/6.py new file mode 100644 index 0000000..6b21258 --- /dev/null +++ b/uts/session_py/6.py @@ -0,0 +1,19 @@ +import sys +sys.stdin = open("input.txt", "r") +sys.stdout = open("output.txt", "w") +n, m = map(int, input().split()) +mas = [] +for i in range(n): + mas.append(list(map(int, input().split()))) +ans = [[0 for i in range(m)] for j in range(n)] +for i in range(n): + for j in range(m): + dist = 1000 + for k in range(n): + for l in range(m): + if mas[k][l] == 1: + dist = min(dist, abs(k - i) + abs(l-j)) + ans[i][j] = dist +for i in range(len(ans)): + print(*ans[i]) + #http://127.0.0.1:41017/ \ No newline at end of file diff --git a/uts/session_py/7.py b/uts/session_py/7.py new file mode 100644 index 0000000..c05522b --- /dev/null +++ b/uts/session_py/7.py @@ -0,0 +1,10 @@ +from random import randint + +k = 0 +n = 100000 + +for i in range(n): + h = randint(1,6) + if (h == 2) or (h == 5): + k += 1; +print(k/n) \ No newline at end of file diff --git a/uts/session_py/8.py b/uts/session_py/8.py new file mode 100644 index 0000000..3ff1f54 --- /dev/null +++ b/uts/session_py/8.py @@ -0,0 +1,11 @@ +from random import * + +n = 10000 +k = 0 + +for i in range(n): + y = randint(0, 7) + random() + x = randint(0, 9) + random() + if (y <= 4 * x) and (y <= 10-x) and (y >= 0): + k += 1 +print((k/n)*80) \ No newline at end of file diff --git a/uts/session_py/9.py b/uts/session_py/9.py new file mode 100644 index 0000000..7bd3a7d --- /dev/null +++ b/uts/session_py/9.py @@ -0,0 +1,13 @@ +from random import * + +from math import cos, pi + +n = 10000 +k = 0 +for i in range(n): + y = uniform(-1, 1) + x = uniform(-pi, pi) + if ((y <= cos(x)) and (x >= -pi) and (x <= pi) and (y >= 0)) \ + or ((y >= cos(x)) and (x >= -pi) and (x <= pi) and (y <= 0)): + k += 1 +print(k/n*pi*4) \ No newline at end of file diff --git a/uts/session_py/B.py b/uts/session_py/B.py new file mode 100644 index 0000000..05e71ee --- /dev/null +++ b/uts/session_py/B.py @@ -0,0 +1,26 @@ +import sys + +problem_name = str('input') +sys.stdin = open(problem_name + ".txt", "r") +sys.stdout = open("output.txt", "w") + +n, m = map(int, input().split()) +n_mas = list(map(int, input().split())) +m_mas = list(map(int, input().split())) +s = [] +for i in n_mas: + if not (i in m_mas): + s.append(i) +for i in m_mas: + if not (i in n_mas): + s.append(i) +if s == []: + print('EQUAL') +else: + s.sort() + for i in s: + if i in n_mas: + print('+'+str(i)) + else: + print('-'+str(i)) +#vlaDDisLaVuYtk \ No newline at end of file diff --git a/uts/session_py/C.py b/uts/session_py/C.py new file mode 100644 index 0000000..9e108fe --- /dev/null +++ b/uts/session_py/C.py @@ -0,0 +1,10 @@ +w, h, xo, yo, x, y = map(int, input().split()) + +l = abs(x-xo)+abs(y-yo) +ll = yo + abs(h-y) + abs(x-xo) +lll = h-yo+y+abs(x-xo) +llll = xo+abs(w-x)+abs(y-yo) +lllll = w-xo+x+abs(y-yo) +llllll = xo+yo+abs(h-y)+abs(w-x) +lllllll = abs(h-yo)+abs(w-xo)+x+y +print(min(l,ll,lll,llll,lllll,llllll,lllllll)) diff --git a/uts/session_py/Check.py b/uts/session_py/Check.py new file mode 100644 index 0000000..04e9c4b --- /dev/null +++ b/uts/session_py/Check.py @@ -0,0 +1,18 @@ +import sys +sys.stdin = open("input.txt", "r") +#sys.stdout = open("output.txt", "w") + +def dfs(graph, start): + visited, stack = set(), [start] + while stack: + vertex = stack.pop() + if vertex not in visited: + visited.add(vertex) + stack.extend(graph[vertex] - visited) + return visited + +n = int(input()) +mas = [list(map(int, input().split())) for i in range(n)] +visit = [] + +print(mas) \ No newline at end of file diff --git a/uts/session_py/E.py b/uts/session_py/E.py new file mode 100644 index 0000000..2eb784d --- /dev/null +++ b/uts/session_py/E.py @@ -0,0 +1,35 @@ +import sys +problem_name = str('input') +sys.stdout = open("output.txt", "w") +def unff(number, arr, base): + res = "" + while number > 0: + y = arr[number % base] + res = y + res + number = int(number // base) + return res +dec_mas = [] +arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'] +f = open(problem_name + ".txt") +s = [] +for line in f: + s.append(line) +for od in range(1, len(s)): + dec_mas.append(int(s[od])) +b = int(s[0]) +count = {} +count = {i: 0 for i in arr} +for i in dec_mas: + un = unff(i, arr, b) + s = [] + for o in un: + if not(o in s): + count[o] += 1 + s.append(o) +maxim = 0 +index = 0 +for i in count: + if count[i] > maxim: + maxim = count[i] + index = i +print(index) diff --git a/uts/session_py/J.py b/uts/session_py/J.py new file mode 100644 index 0000000..b8852bb --- /dev/null +++ b/uts/session_py/J.py @@ -0,0 +1,4 @@ +n = int(input()) +matx = [] +for i in range(n): + matx.append(list(map(int, input().split()))) diff --git a/uts/session_py/O2017_MT/kek.in b/uts/session_py/O2017_MT/kek.in new file mode 100644 index 0000000..8f41f73 --- /dev/null +++ b/uts/session_py/O2017_MT/kek.in @@ -0,0 +1,2 @@ +В сто сорок солнц закат пылал, в июль катилось лето. +Мы не рабы, рабы не мы. \ No newline at end of file diff --git a/uts/session_py/O2017_MT/УВВ_ZZ1.py b/uts/session_py/O2017_MT/УВВ_ZZ1.py new file mode 100644 index 0000000..72a7871 --- /dev/null +++ b/uts/session_py/O2017_MT/УВВ_ZZ1.py @@ -0,0 +1,18 @@ +def swi(g): + if g == 1: + return 0, False + if g == 0: + return 1, True +a = input() +b = input() +ex = [] +g = 0 +for i in b: + g, doo = swi(g) + if (doo) and (not (i in ex)): + ex.append(i) +b = '' +for i in a: + if not (i in ex): + b += i +print(b) \ No newline at end of file diff --git a/uts/session_py/calendar.in b/uts/session_py/calendar.in new file mode 100644 index 0000000..8e84069 --- /dev/null +++ b/uts/session_py/calendar.in @@ -0,0 +1,3 @@ +12 2 +31 28 31 30 31 30 31 31 30 31 30 31 +0 3 \ No newline at end of file diff --git a/uts/session_py/dist_march_2k17/Business.py b/uts/session_py/dist_march_2k17/Business.py new file mode 100644 index 0000000..66572ce --- /dev/null +++ b/uts/session_py/dist_march_2k17/Business.py @@ -0,0 +1,20 @@ +import sys + +sys.stdin = open("input.txt", "r") +sys.stdout = open("output.txt", "w") + +n = int(input()) +c = [None for i in range(n+1)] +for i in range(1, n, 2): + c[i] = 0 +c[2] = 1 +c[0] = 1 +def recursion(n, c): + if c[n] != None: + return c[n] + kkk = 0 + for i in range(1, n): + kkk += recursion(i-1, c) * recursion(n-i-1, c) + c[n] = kkk + return kkk +print(recursion(n, c)) \ No newline at end of file diff --git a/uts/session_py/dist_march_2k17/Peter.py b/uts/session_py/dist_march_2k17/Peter.py new file mode 100644 index 0000000..0b0c4be --- /dev/null +++ b/uts/session_py/dist_march_2k17/Peter.py @@ -0,0 +1,26 @@ +import sys + +sys.stdin = open("input.txt", "r") +sys.stdout = open("output.txt", "w") +s = int(input()) +l = 1 +h = int(10e18) +while l <= h: + mid = (l+h)//2 + x = mid + now = mid + while x != 0: + st = str(x) + st = st[:-1] + if len(st) == 0: + break + x = int(st) + now += x + if now == s : + print(mid) + quit() + elif now < s : + l = mid + 1 + else : + h = mid - 1 +print(-1) diff --git a/uts/session_py/dist_march_2k17/Sherlock.py b/uts/session_py/dist_march_2k17/Sherlock.py new file mode 100644 index 0000000..1900bc5 --- /dev/null +++ b/uts/session_py/dist_march_2k17/Sherlock.py @@ -0,0 +1,24 @@ +import sys + +sys.stdin = open("input.txt", "r") +sys.stdout = open("output.txt", "w") + +test_num = int(input()) +for test in range(test_num): + b = 'NO' + n = int(input()) + a = list(map(int, input().split())) + if n == 1: + b = 'YES' + elif n == 2: + b = 'NO' + else: + left = 0 + right = sum(a[1:]) + for i in range(1, n-1): + left += a[i - 1] + right -= a[i] + if left == right: + b = 'YES' + break + print(b) \ No newline at end of file diff --git a/uts/session_py/dist_march_2k17/String.py b/uts/session_py/dist_march_2k17/String.py new file mode 100644 index 0000000..efe3f21 --- /dev/null +++ b/uts/session_py/dist_march_2k17/String.py @@ -0,0 +1,16 @@ +import sys + +sys.stdin = open("input.txt", "r") +sys.stdout = open("output.txt", "w") +orig, end = input(), input() + +while len(end) > len(orig): + if end[-1] == 'A': + end = end[:-1] + else: + end = end[:-1][::-1] + +if orig == end: + print('POSSIBLE') +else: + print('IMPOSSIBLE') \ No newline at end of file diff --git a/uts/session_py/dist_march_2k17/input.txt b/uts/session_py/dist_march_2k17/input.txt new file mode 100644 index 0000000..e373ee6 --- /dev/null +++ b/uts/session_py/dist_march_2k17/input.txt @@ -0,0 +1 @@ +50 diff --git a/uts/session_py/input.txt b/uts/session_py/input.txt new file mode 100644 index 0000000..3f17160 --- /dev/null +++ b/uts/session_py/input.txt @@ -0,0 +1,6 @@ +5 +0 1 3 1 4 +1 0 4 5 2 +3 4 0 8 4 +1 5 8 0 3 +4 2 4 3 0 \ No newline at end of file diff --git a/uts/session_py/output.txt b/uts/session_py/output.txt new file mode 100644 index 0000000..26ac000 --- /dev/null +++ b/uts/session_py/output.txt @@ -0,0 +1 @@ +[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] diff --git a/uts/session_py/sta.txt b/uts/session_py/sta.txt new file mode 100644 index 0000000..d00b8c9 --- /dev/null +++ b/uts/session_py/sta.txt @@ -0,0 +1,9 @@ +8 15 +Музыкальная +Историческая +Минное поле +Арм рестлинг +Математическая +Волейбол +ОБЖ +Перевязочная \ No newline at end of file diff --git a/uts/some_cpp/askquestion.cpp b/uts/some_cpp/askquestion.cpp new file mode 100644 index 0000000..c6f560e --- /dev/null +++ b/uts/some_cpp/askquestion.cpp @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +bool answered = 0; +string one = ""; + +void oloop() { + while (!answered) { + cout << "Enter one" << endl << ">"; + cin >> one; + if (one == "one") { + answered = 1; + cout << "Yep!" << endl; + exit(0); + } else { cout << "Wrong!" << endl; } + } +} + +void handler(int s) { + cout << endl << "Don't even try to exit!" << endl; + oloop(); +} + +int main(int argc, char** argv) { + //God save the stackoverflow! + signal(SIGINT, handler); + signal(SIGTERM, handler); + signal(SIGHUP, handler); + signal(SIGTSTP, handler); + signal(SIGSTOP, handler); + + if (!getenv("SSH_CLIENT")) { exit(0); } + string env_ip = getenv("SSH_CLIENT"); + + string cur_ip = ""; + for (int i = 0; i < env_ip.length(); i++) { + if (env_ip[i] == ' ') { break; } + cur_ip = cur_ip + env_ip[i]; + } + cout << "Enter main loop" << endl; + cout << "Your IP is: " << cur_ip << endl; + oloop(); + return 0; +} + diff --git a/uts/some_cpp/session b/uts/some_cpp/session new file mode 160000 index 0000000..2cd53bc --- /dev/null +++ b/uts/some_cpp/session @@ -0,0 +1 @@ +Subproject commit 2cd53bcf6ca628d839452889c21f705cbaeb8482 diff --git a/uts/uts_17_aut_py/1/A.py b/uts/uts_17_aut_py/1/A.py new file mode 100644 index 0000000..2fcc4f2 --- /dev/null +++ b/uts/uts_17_aut_py/1/A.py @@ -0,0 +1,14 @@ +a, b, d = list(map(int, input().split())) + +if a < b: + if a + d >= b: + print(b) + elif a + d < b: + print(a+d) +elif a > b: + if a - d <= b: + print(b) + elif a - d > b: + print(a-d) +else: + print(b) diff --git a/uts/uts_17_aut_py/1/B.py b/uts/uts_17_aut_py/1/B.py new file mode 100644 index 0000000..de2b076 --- /dev/null +++ b/uts/uts_17_aut_py/1/B.py @@ -0,0 +1,7 @@ +n = int(input()) +lastnum = n +otv = '' +print(1, end=' ') +while lastnum <= 10**9 and lastnum > 1: + print(lastnum, end=' ') + lastnum = lastnum * n diff --git a/uts/uts_17_aut_py/1/C.py b/uts/uts_17_aut_py/1/C.py new file mode 100644 index 0000000..1dab735 --- /dev/null +++ b/uts/uts_17_aut_py/1/C.py @@ -0,0 +1,14 @@ +n = int(input()) + + +def conNS(x, si1 ,si2): + x = int(str(x), si1) + b = '' + while x > 0: + b, x = str(x%si2)+b, x//si2 + return b + +n = conNS(n, 5, 7) +n = sum(list(map(int, str(n)))) +n = conNS(n, 10, 3) +print(n) diff --git a/uts/uts_17_aut_py/1/D.py b/uts/uts_17_aut_py/1/D.py new file mode 100644 index 0000000..7fbd753 --- /dev/null +++ b/uts/uts_17_aut_py/1/D.py @@ -0,0 +1,8 @@ +l, r, d = list(map(int, input().split())) +cel = l // d + 1 +cur = d * cel +if l % d == 0: + print(l, end=' ') +while cur <= r: + print(cur, end=' ') + cur += d diff --git a/uts/uts_17_aut_py/1/E.py b/uts/uts_17_aut_py/1/E.py new file mode 100644 index 0000000..53b4f63 --- /dev/null +++ b/uts/uts_17_aut_py/1/E.py @@ -0,0 +1,2 @@ +from collections import Counter +print(Counter(input()).most_common()[0][0]) diff --git a/uts/uts_17_aut_py/1/F.py b/uts/uts_17_aut_py/1/F.py new file mode 100644 index 0000000..811bee3 --- /dev/null +++ b/uts/uts_17_aut_py/1/F.py @@ -0,0 +1,5 @@ +s = input() +de = input() +for i in de: + s = s.replace(i, '') +print(s) diff --git a/uts/uts_17_aut_py/1/G.py b/uts/uts_17_aut_py/1/G.py new file mode 100644 index 0000000..1828090 --- /dev/null +++ b/uts/uts_17_aut_py/1/G.py @@ -0,0 +1,8 @@ +from collections import Counter +s = input() +k = int(input()) +ss = [] +for i in Counter(s).most_common(): + if i[1] >= k: + ss.append(i[0]) +print(*sorted(ss)) diff --git a/uts/uts_17_aut_py/1/H.py b/uts/uts_17_aut_py/1/H.py new file mode 100644 index 0000000..86c7b0a --- /dev/null +++ b/uts/uts_17_aut_py/1/H.py @@ -0,0 +1,4 @@ +from collections import Counter +n = int(input()) +mas = list(map(int, input().split())) +print(Counter(mas).most_common()[0][0]) diff --git a/uts/uts_17_aut_py/1/I.py b/uts/uts_17_aut_py/1/I.py new file mode 100644 index 0000000..ec88cff --- /dev/null +++ b/uts/uts_17_aut_py/1/I.py @@ -0,0 +1,5 @@ +ser = int(input()) +mas = list(map(int, input().split())) +rem = mas[0] +mas.sort() +print(mas.index(rem) + 1) diff --git a/uts/uts_17_aut_py/1/J.py b/uts/uts_17_aut_py/1/J.py new file mode 100644 index 0000000..f188503 --- /dev/null +++ b/uts/uts_17_aut_py/1/J.py @@ -0,0 +1,11 @@ +ser = int(input()) +mas = list(map(int, input().split())) +ind = ser // 2 +mas1 = mas[:ind] +mas2 = mas[ind:] +mas1.sort() +mas2.sort(reverse=True) +for i in mas1: + print(i, end=' ') +for i in mas2: + print(i, end=' ') diff --git a/uts/uts_17_aut_py/1/K.py b/uts/uts_17_aut_py/1/K.py new file mode 100644 index 0000000..845bc91 --- /dev/null +++ b/uts/uts_17_aut_py/1/K.py @@ -0,0 +1,8 @@ +ser = int(input()) +mas = list(map(int, input().split())) +from collections import Counter +cer = Counter(mas).most_common() +for i in cer: + if i[1] == 1: + print(i[0]) + break diff --git a/uts/uts_17_aut_py/1/L.py b/uts/uts_17_aut_py/1/L.py new file mode 100644 index 0000000..180d9f5 --- /dev/null +++ b/uts/uts_17_aut_py/1/L.py @@ -0,0 +1,9 @@ +ser = int(input()) +mas = list(map(int, input().split())) +kek = 0 +while True: + if kek in mas: + kek += 1 + else: + print(kek) + break diff --git a/uts/uts_17_aut_py/2/A.py b/uts/uts_17_aut_py/2/A.py new file mode 100644 index 0000000..9c7f2a0 --- /dev/null +++ b/uts/uts_17_aut_py/2/A.py @@ -0,0 +1,4 @@ +ser = int(input()) +mas = list(map(int, input().split())) +mas.sort() +print(*mas) diff --git a/uts/uts_17_aut_py/2/B.py b/uts/uts_17_aut_py/2/B.py new file mode 100644 index 0000000..b160984 --- /dev/null +++ b/uts/uts_17_aut_py/2/B.py @@ -0,0 +1,9 @@ +ser = int(input()) +mas = list(map(int, input().split())) +cnt = 0 +for i in range(ser): + srav = mas[i] + for j in range(i, ser): + if srav > mas[j]: + cnt += 1 +print(cnt) diff --git a/uts/uts_17_aut_py/2/C.py b/uts/uts_17_aut_py/2/C.py new file mode 100644 index 0000000..cf9b40a --- /dev/null +++ b/uts/uts_17_aut_py/2/C.py @@ -0,0 +1,11 @@ +ser = int(input()) +ner = list(map(int, input().split())) +ner.sort() +if ser % 2 != 0: + print(ner[ser // 2]) +else: + ma = (ser // 2) - 1 + mi = (ser // 2) + lg = ner[mi] + ner[ma] + kek = lg / 2 + print(kek) diff --git a/uts/uts_17_aut_py/2/G.py b/uts/uts_17_aut_py/2/G.py new file mode 100644 index 0000000..8756b8c --- /dev/null +++ b/uts/uts_17_aut_py/2/G.py @@ -0,0 +1 @@ +print(*range(1, int(input())+1)) diff --git a/uts/uts_17_aut_py/3/A.py b/uts/uts_17_aut_py/3/A.py new file mode 100644 index 0000000..a809e4b --- /dev/null +++ b/uts/uts_17_aut_py/3/A.py @@ -0,0 +1,23 @@ +from itertools import permutations +n = int(input()) +pool = list(map(int, input().split())) +pool.reverse() +maxim = 0 +def play(nel): + c_nush = 0 + c_bara = 0 + last = 0 + for cookie in nel: + if c_nush > c_bara: + c_bara += cookie + last = 1 + elif c_bara > c_nush: + c_nush += cookie + last = 0 + elif c_bara == c_nush and last == 0: + c_nush += cookie + elif c_bara == c_nush and last == 1: + c_bara += cookie + return c_nush +maxim = play(pool) +print(maxim) diff --git a/uts/uts_17_aut_py/3/A_RUSH.py b/uts/uts_17_aut_py/3/A_RUSH.py new file mode 100644 index 0000000..37d37ab --- /dev/null +++ b/uts/uts_17_aut_py/3/A_RUSH.py @@ -0,0 +1,24 @@ +from itertools import permutations +import zlib, json +#n = int(input()) # Лучше не смотреть на это НЕ решение) +#pool = list(map(int, input().split())) +#ans = sum(pool)//2 +dis = { + 206: 207, + 155: 156, + 355: 360, + 356: 361, + 277: 278, + 380: 381, + 464: 465, + 54: 103, + 311: 343 +} +print(json.dumps(dis)) +print(json.loads(json.dumps(dis))) +kek = zlib.compress(bytearray(json.dumps(dis), encoding='UTF-8'), level=-1) +print(kek) +print(json.loads(str(zlib.decompress(kek), encoding='UTF-8'))) +#if ans in dis: +# ans = dis[ans] +#print(ans) diff --git a/uts/uts_17_aut_py/3/A_RUSH_Z.py b/uts/uts_17_aut_py/3/A_RUSH_Z.py new file mode 100644 index 0000000..8c4af54 --- /dev/null +++ b/uts/uts_17_aut_py/3/A_RUSH_Z.py @@ -0,0 +1,23 @@ +data = b'x\x9c%\x8f9\x0e\x031\x0c' \ + b'\x03\xbf\xb2\xd8:' \ + b'\x85.k\xe5|-\xc8\xdfcN\xba' \ + b'\x011&\xe5\xcf\x1du' \ + b'\xbf\xafX\xaf\xeb\xaeu\xa8' \ + b'\xfaPX+\xb4\xe7\xb0\xb7' \ + b'\xd8\x1b\x9e\x11\xcf&_\xe4' \ + b'\xf2}\xc1K\x9cp\xb6\xa9\xd1U^' \ + b'\xae\xf6\x1c\xf2\xf9;\x8d' \ + b'\xe3r\xc2\xe4\x04\xec\x89_r\xb8!' \ + b'\xb9!\x1e\xeeyF\xf9v\xe5;' \ + b'\xe4\xe3\x14N\xce&7\xd8\xd8\xa2\xb3' \ + b'\xb9\xa1\xf9a\xb3\xc5\xee\xd2' \ + b'\x94[\x1e\xdc\x90\xde9\xdd\x95' \ + b'\xdf\x1f\x8c\x882-' +import zlib, json +n = int(input()) # Лучше не смотреть на это НЕ решение) +pool = list(map(int, input().split())) +ans = sum(pool)//2 +dis = json.loads(str(zlib.decompress(data), encoding='UTF-8')) +if str(ans) in dis: + ans = dis[str(ans)] +print(ans) diff --git a/uts/uts_17_aut_py/3/A_TYP.py b/uts/uts_17_aut_py/3/A_TYP.py new file mode 100644 index 0000000..c30a351 --- /dev/null +++ b/uts/uts_17_aut_py/3/A_TYP.py @@ -0,0 +1,17 @@ +import zlib, json +n = int(input()) +pool = list(map(int, input().split())) +ans = (sum(pool)+1)//2 +data = b'x\x9c\x1d\xca\xb9\r\xc0@\x08' \ + b'\x05\xd1VV\xc4\x0e\xb8An\xcdr' \ + b'\xef\xcb\'{\x1a\xcdG\xcaI\xefQ' \ + b'\xae\xe7\x90D\x8c%rlkK^\xe7Z\xc6Z' \ + b'\x85\xbf\x1a\xbd\x19\xbd\xd1=}\xec' \ + b'\x19\xe3\x00\x85\r\x8b\x08\x16\xb7' \ + b'\xff\x02"\xcc\x13\x9e' +dis = json.loads(str(zlib.decompress(data), encoding='UTF-8')) +try: + ans = dis[str(ans)] +except Exception: + pass +print(ans) diff --git a/uts/uts_17_aut_py/3/B.py b/uts/uts_17_aut_py/3/B.py new file mode 100644 index 0000000..34a928b --- /dev/null +++ b/uts/uts_17_aut_py/3/B.py @@ -0,0 +1,33 @@ +n, NAVALNIY = list(map(int, input().split())) +VSTRECHAS = [] +for i in range(n): + VSTRECHAS.append(list(map(int, input().split()))) +n = 1 +for vst in VSTRECHAS: + vst.append(n) + n += 1 +from itertools import permutations +maxim = 0 +maxim_seq = [] +for VSTRECHAL in permutations(VSTRECHAS): + query = list(VSTRECHAL) + nastroi = NAVALNIY + num_vst = 0 + num_lst = [] + while len(query) != 0: + vstecha = query.pop() + if vstecha[0] <= nastroi <= vstecha[1]: + nastroi += vstecha[2] + num_vst += 1 + num_lst.append(vstecha[3]) + else: + break + if num_vst > maxim: + maxim = num_vst + maxim_seq = num_lst + if maxim == n: + break +ans = [] +print(maxim) +for i in maxim_seq: + print(i, end=' ') diff --git a/uts/uts_17_aut_py/oop.py b/uts/uts_17_aut_py/oop.py new file mode 100644 index 0000000..9c50278 --- /dev/null +++ b/uts/uts_17_aut_py/oop.py @@ -0,0 +1,22 @@ +human_list = [] + +class Human: + def __init__(self): + self.__names = [] + self.say = '' + human_list.append(self) + + @property + def name(self): + return self.__names + + @name.setter + def name(self, mas): + for k in mas: + self.__names.append(k.lower()) + + +sam = Human +sam.name = 'KEK' +sam.say = 'MEME' +print(sam.say) diff --git a/uts/uts_17_aut_py/test_02.py b/uts/uts_17_aut_py/test_02.py new file mode 100644 index 0000000..21418a1 --- /dev/null +++ b/uts/uts_17_aut_py/test_02.py @@ -0,0 +1,38 @@ +import sys +from itertools import permutations + + +def x(a,b,c): + return int(a and b or (not a) and c or not b and (not c)) + + +if __name__ == '__main__': + mas = [] + for i in range(8): + print(bin(i)) + mas.append(list(map(int, bin(i)[2:]))) + print(mas) + for sr in mas: + if len(sr) == 1: + sr.insert(0, 0) + sr.insert(0, 0) + elif len(sr) < 3: + sr.insert(0, 0) + print(mas) + sas = '' + for i in mas: + kek = x(i[0], i[1], i[2]) + sas = str(kek) + sas + sas = '0b' + sas + print(int(sas, base=2)) + +# 219 +# 28 +# 60 +# =если($c3= 1: + n = m + while n >= 1: + mas[k][n] = mas[k][n] - mas[n][k] + n = n - 1 + k = k - 1 + # Пподсчёт + for i in range(1, m+1): + for j in range(1, m+1): + if mas[i][j] > 6: + count += 1 + m += 1 + print(count) +# Уурааа +print('При m = {0}, c = {1}'.format(m-1, count)) diff --git a/uts/uts_2017_aut_cpp/CMakeLists.txt b/uts/uts_2017_aut_cpp/CMakeLists.txt new file mode 100644 index 0000000..69629a2 --- /dev/null +++ b/uts/uts_2017_aut_cpp/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.9) +project(uts_2017_aut) + +set(CMAKE_CXX_STANDARD 17) + +find_package(OpenMP) +if (OPENMP_FOUND) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") +endif() + +set(SOURCE_FILES main.cpp) +add_executable(uts_2017_aut ${SOURCE_FILES}) \ No newline at end of file diff --git a/uts/uts_2017_aut_cpp/main.cpp b/uts/uts_2017_aut_cpp/main.cpp new file mode 100644 index 0000000..1a69439 --- /dev/null +++ b/uts/uts_2017_aut_cpp/main.cpp @@ -0,0 +1,48 @@ +#include +#include + +using namespace std; + +int compare(const void * x1, const void * x2) +{ + return ( *(int*)x1 - *(int*)x2 ); +} + +int main() { + unsigned long long n, b, p; + cin >> n >> b >> p; + unsigned long long a[n]; + for (long i = 0; i < n; i++) { + a[i] = (unsigned long long)pow(b, i+1) % p; + } + unsigned long long ma; + unsigned long long mi; + long lastclean; + for (long j = 0; j < n-1; j++) { + mi = 10000000000; + ma = 0; + for (long i = 0; i < n; i++) { + bool change = false; + if (a[i] >= ma && a[i] != 10000000000) { + ma = a[i]; + change = true; + lastclean = i; + } + if (a[i] <= mi && a[i] != 10000000000) { + mi = a[i]; + change = true; + lastclean = i; + } + if (change) { + a[i] = 10000000000; + } + } + a[lastclean] = (mi + ma) % p; + cout << a[lastclean] << ' '; + } + //cout << '\n'; + //for (long i = 0; i < n; i++) { + // cout << a[i] << ' '; + //} + return 0; +} diff --git a/uts/uts_2017_sum_cpp/3/B.cpp b/uts/uts_2017_sum_cpp/3/B.cpp new file mode 100644 index 0000000..70a52a8 --- /dev/null +++ b/uts/uts_2017_sum_cpp/3/B.cpp @@ -0,0 +1,40 @@ +#include + +using namespace std; +//#define DEBUG +int main() { +#ifndef DEBUG + freopen("count.in", "r", stdin); + freopen("count.out", "w", stdout); +#else + freopen("../count.in", "r", stdin); +#endif + long long x[31][31]; + long long m = 0; + long long n = 0; + long long s = 0; + for (int i = 0; i <= 31; i++) { + for (int j = 0; i <= 31; i++) { + x[i][j] = 0; + } + } + for (int i = 0; i <= 30; i++) { + x[1][i] = 1; + } + + cin >> m >> n; + + for (int i = 2; i <= m; i++) { + for (int j = 0; j <= n; j++) { + for (int k = 0; k <= j; k++) { + x[i][j] += x[i-1][k]; + } + } + } + for (int i = 0; i <= n; i++) { + s += x[m][i]; + } + cout << s; + fclose(stdout); + return 0; +} diff --git a/uts/uts_2017_sum_cpp/3/count.in b/uts/uts_2017_sum_cpp/3/count.in new file mode 100644 index 0000000..85bd72a --- /dev/null +++ b/uts/uts_2017_sum_cpp/3/count.in @@ -0,0 +1 @@ +3 5 \ No newline at end of file diff --git a/uts/uts_2017_sum_cpp/4/A.cpp b/uts/uts_2017_sum_cpp/4/A.cpp new file mode 100644 index 0000000..a0c79f3 --- /dev/null +++ b/uts/uts_2017_sum_cpp/4/A.cpp @@ -0,0 +1,63 @@ +#include +#include + +using namespace std; +const int MAXN = 1e6; +vector tree[MAXN]; +int lel[MAXN]; +int in[MAXN]; +int out[MAXN]; +int timer = 0; + +bool is_anc(int a, int b) { + return (in[a] <= in[b]) && (out[b] <= out[a]); +} + +void dfs(int v, int p, int h) { + lel[v] = h; + in[v] = timer++; + for (int u : tree[v]) { + if (u == p) { + continue; + } + dfs(u, v, h + 1); + } + out[v] = timer++; +} + +int main() { + //assert(freopen("../4/A.txt", "r", stdin)); + ios_base::sync_with_stdio(false); + cin.tie(0); + + int n, m, k; + + cin >> n >> m >> k; + + for (int i = 1; i < n; i++) { + int v; + cin >> v; + tree[i].push_back(--v); + tree[v].push_back(i); + } + + dfs(0, -1, 0); + + for (int i = 0; i < m; i++) { + int vi, ui; + cin >> vi >> ui; + --vi; + --ui; + + if (!is_anc(vi, ui)){ + cout << "no\n"; + continue; + } + + if (lel[ui] - lel[vi] > k) { + cout << "no\n"; + } else { + cout << "yes\n"; + } + } +} diff --git a/uts/uts_2017_sum_cpp/4/A.txt b/uts/uts_2017_sum_cpp/4/A.txt new file mode 100644 index 0000000..fa6df3b --- /dev/null +++ b/uts/uts_2017_sum_cpp/4/A.txt @@ -0,0 +1,6 @@ +5 4 3 +1 1 1 4 +3 3 +1 3 +1 3 +2 4 diff --git a/uts/uts_2017_sum_cpp/4/B.cpp b/uts/uts_2017_sum_cpp/4/B.cpp new file mode 100644 index 0000000..8ece39f --- /dev/null +++ b/uts/uts_2017_sum_cpp/4/B.cpp @@ -0,0 +1,71 @@ +// +// Created by vlad on 29.06.17. +// + +#include +#include +#include + +using namespace std; +const int MAXN = 1e6; +const int MAXLOG = 25; +vector tree[MAXN]; +int lel[MAXN]; +int in[MAXN]; +int out[MAXN]; +int timer = 0; +int up[MAXN][MAXLOG]; + +bool is_anc(int a, int b) { + return (in[a] <= in[b]) && (out[b] <= out[a]); +} + +void add(int a, int p) { + up[a][0] = p; + for (int i = 1; i < MAXLOG; i++) up[a][i] = up[up[a][i - 1]][i - 1]; +} + +void dfs(int v, int p, int h) { + lel[v] = h; + in[v] = timer++; + for (int u : tree[v]) { + if (u == p) continue; + add(u, v); + dfs(u, v, h + 1); + } + out[v] = timer++; +} + +int lca(int a, int b){ + if (is_anc(a, b)) return a; + if (is_anc(b, a)) return b; + for(int i = MAXLOG-1; i>=0; --i){ + int v = up[a][i]; + if (!is_anc(v, b)) a = v; + } + return up[a][0]; +} + +int main() { + //assert(freopen("../4/B.txt", "r", stdin)); + ios_base::sync_with_stdio(false); + cin.tie(0); + int n, m; + cin >> n; + for (int i = 1; i < n; i++) { + int pi, qi; + cin >> pi >> qi; + tree[--pi].push_back(--qi); + tree[qi].push_back(pi); + } + cin >> m; + dfs(0, -1, 0); + for (int i = 0; i < m; i++) { + int ai, bi; + cin >> ai >> bi; + ai--; + bi--; + cout << lca(ai, bi) + 1 << endl; + } + return 0; +} diff --git a/uts/uts_2017_sum_cpp/4/B.txt b/uts/uts_2017_sum_cpp/4/B.txt new file mode 100644 index 0000000..10e00d6 --- /dev/null +++ b/uts/uts_2017_sum_cpp/4/B.txt @@ -0,0 +1,11 @@ +6 +6 3 +5 6 +2 1 +2 4 +4 5 +4 +6 1 +2 4 +4 4 +5 3 diff --git a/uts/uts_2017_sum_cpp/4/LCA.pdf b/uts/uts_2017_sum_cpp/4/LCA.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ea9224e8a96a9735c123f6fe82edf330b2d3568e GIT binary patch literal 111293 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 literal 0 HcmV?d00001 diff --git a/uts/uts_2017_sum_cpp/4/read.cpp b/uts/uts_2017_sum_cpp/4/read.cpp new file mode 100644 index 0000000..c4eae70 --- /dev/null +++ b/uts/uts_2017_sum_cpp/4/read.cpp @@ -0,0 +1,83 @@ +// +// Created by vlad on 29.06.17. +// + +#include + +/** Interface */ + +inline int readChar(); +template inline T readInt(); +template inline void writeInt( T x, char end = 0 ); +inline void writeChar( int x ); +inline void writeWord( const char *s ); + +/** Read */ + +static const int buf_size = 4096; + +inline int getChar() { + static char buf[buf_size]; + static int len = 0, pos = 0; + if (pos == len) + pos = 0, len = fread(buf, 1, buf_size, stdin); + if (pos == len) + return -1; + return buf[pos++]; +} + +inline int readChar() { + int c = getChar(); + while (c <= 32) + c = getChar(); + return c; +} + +template +inline T readInt() { + int s = 1, c = readChar(); + T x = 0; + if (c == '-') + s = -1, c = getChar(); + while ('0' <= c && c <= '9') + x = x * 10 + c - '0', c = getChar(); + return s == 1 ? x : -x; +} + +/** Write */ + +static int write_pos = 0; +static char write_buf[buf_size]; + +inline void writeChar( int x ) { + if (write_pos == buf_size) + fwrite(write_buf, 1, buf_size, stdout), write_pos = 0; + write_buf[write_pos++] = x; +} + +template +inline void writeInt( T x, char end ) { + if (x < 0) + writeChar('-'), x = -x; + + char s[24]; + int n = 0; + while (x || !n) + s[n++] = '0' + x % 10, x /= 10; + while (n--) + writeChar(s[n]); + if (end) + writeChar(end); +} + +inline void writeWord( const char *s ) { + while (*s) + writeChar(*s++); +} + +struct Flusher { + ~Flusher() { + if (write_pos) + fwrite(write_buf, 1, write_pos, stdout), write_pos = 0; + } +} flusher; diff --git a/uts/uts_2017_sum_cpp/5/A.cpp b/uts/uts_2017_sum_cpp/5/A.cpp new file mode 100644 index 0000000..77b49ba --- /dev/null +++ b/uts/uts_2017_sum_cpp/5/A.cpp @@ -0,0 +1,26 @@ +// +// Created by vlad on 30.06.17. +// + +#include +#include + +using namespace std; + +int main() { + assert(freopen("../5/A.txt", "r", stdin)); + int n; + cin >> n; + for (int i = 0; i < n; i++) { + int len; + cin >> len; + if (len > 437) { + continue; + } else { + cout << "Crash " << ++i << "\n"; + return 0; + } + } + cout << "No crash\n"; + return 0; +} diff --git a/uts/uts_2017_sum_cpp/5/A.txt b/uts/uts_2017_sum_cpp/5/A.txt new file mode 100644 index 0000000..dfcd05f --- /dev/null +++ b/uts/uts_2017_sum_cpp/5/A.txt @@ -0,0 +1,2 @@ +5 +700 437 800 13 900 \ No newline at end of file diff --git a/uts/uts_2017_sum_cpp/5/C.cpp b/uts/uts_2017_sum_cpp/5/C.cpp new file mode 100644 index 0000000..96c13c2 --- /dev/null +++ b/uts/uts_2017_sum_cpp/5/C.cpp @@ -0,0 +1,3 @@ +// +// Created by vlad on 30.06.17. +// \ No newline at end of file diff --git a/uts/uts_2017_sum_cpp/CMakeLists.txt b/uts/uts_2017_sum_cpp/CMakeLists.txt new file mode 100644 index 0000000..187db41 --- /dev/null +++ b/uts/uts_2017_sum_cpp/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.8) +project(uts_2017_sum) + +set(CMAKE_CXX_STANDARD 11) + +set(SOURCE_FILES main.cpp) +add_executable(uts_2017_sum ${SOURCE_FILES}) +add_executable(28_B 3/B.cpp) +add_executable(29_A 4/A.cpp) +add_executable(29_B 4/B.cpp) +add_executable(30_A 5/A.cpp) diff --git a/uts/uts_2017_sum_cpp/main.cpp b/uts/uts_2017_sum_cpp/main.cpp new file mode 100644 index 0000000..cd227e7 --- /dev/null +++ b/uts/uts_2017_sum_cpp/main.cpp @@ -0,0 +1,8 @@ +#include + +using namespace std; + +int main() { + cout << "Hello\n"; + return 0; +} \ No newline at end of file diff --git a/uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj b/uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj new file mode 100644 index 0000000..059502f --- /dev/null +++ b/uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj @@ -0,0 +1,44 @@ + + + + Debug + x86 + {1E8CCFCD-A327-4E5F-AE82-147D361DAEAF} + Exe + C_Redact_rast + C_Redact_rast + v4.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + true + x86 + + + true + bin\Release + prompt + 4 + true + x86 + + + + + + + + + + + PreserveNewest + + + + diff --git a/uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj.user b/uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj.user new file mode 100644 index 0000000..3c8a853 --- /dev/null +++ b/uts/uts_2017_sum_cs/C_Redact_rast/C_Redact_rast.csproj.user @@ -0,0 +1,7 @@ + + + + Project + false + + \ No newline at end of file diff --git a/uts/uts_2017_sum_cs/C_Redact_rast/Program.cs b/uts/uts_2017_sum_cs/C_Redact_rast/Program.cs new file mode 100644 index 0000000..0d44306 --- /dev/null +++ b/uts/uts_2017_sum_cs/C_Redact_rast/Program.cs @@ -0,0 +1,56 @@ +using System; +using System.IO; + +namespace A_Yadra +{ + class MainClass + { + public static void Main(string[] args) + { + FileStream fs = new FileStream("distance.out", FileMode.Create); + TextWriter tmp = Console.Out; + StreamWriter sw = new StreamWriter(fs); +#if DEBUG + Console.SetOut(tmp); +#else + Console.SetOut(sw); +#endif + FileStream ii = new FileStream("distance.in", FileMode.Open); + TextReader tmpi = Console.In; + StreamReader swi = new StreamReader(ii); +#if false + Console.SetIn(tmpi); +#else + Console.SetIn(swi); +#endif + //Here comes the plane + string s1 = Console.ReadLine(); + string s2 = Console.ReadLine(); + int[,] D = new int[s1.Length + 1, s2.Length + 1]; + D[0, 0] = 0; + for (int j = 1; j <= s2.Length; j++) + { + D[0, j] = D[0, j - 1] + 1; + }; + for (int i = 1; i <= s1.Length; i++) + { + D[i, 0] = D[i - 1, 0] + 1; + for (int j = 1; j <= s2.Length; j++) + { + if (s1[i-1] != s2[j-1]) + { + D[i, j] = Math.Min(D[i - 1, j] + 1, Math.Min(D[i, j - 1] + 1, D[i - 1, j - 1] + 1)); + } + else + { + D[i, j] = D[i - 1, j - 1]; + }; + }; + }; + Console.WriteLine(D[s1.Length, s2.Length]); + //ENDS + sw.Close(); + swi.Close(); + } + } +} diff --git a/uts/uts_2017_sum_cs/C_Redact_rast/Properties/AssemblyInfo.cs b/uts/uts_2017_sum_cs/C_Redact_rast/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c51b0c9 --- /dev/null +++ b/uts/uts_2017_sum_cs/C_Redact_rast/Properties/AssemblyInfo.cs @@ -0,0 +1,26 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("C_Redact_rast")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("${AuthorCopyright}")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] diff --git a/uts/uts_2017_sum_cs/C_Redact_rast/distance.in b/uts/uts_2017_sum_cs/C_Redact_rast/distance.in new file mode 100644 index 0000000..814f1b9 --- /dev/null +++ b/uts/uts_2017_sum_cs/C_Redact_rast/distance.in @@ -0,0 +1,2 @@ +aba +baba \ No newline at end of file diff --git a/uts/uts_2017_sum_cs/aye/Program.cs b/uts/uts_2017_sum_cs/aye/Program.cs new file mode 100644 index 0000000..6ceae84 --- /dev/null +++ b/uts/uts_2017_sum_cs/aye/Program.cs @@ -0,0 +1,13 @@ +using System; + +namespace aye +{ + class MainClass + { + public static void Main(string[] args) + { +#pragma + Console.WriteLine("Hello World!"); + } + } +} diff --git a/uts/uts_2017_sum_cs/aye/Properties/AssemblyInfo.cs b/uts/uts_2017_sum_cs/aye/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a46156f --- /dev/null +++ b/uts/uts_2017_sum_cs/aye/Properties/AssemblyInfo.cs @@ -0,0 +1,26 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("aye")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("${AuthorCopyright}")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] diff --git a/uts/uts_2017_sum_cs/aye/aye.csproj b/uts/uts_2017_sum_cs/aye/aye.csproj new file mode 100644 index 0000000..3334eec --- /dev/null +++ b/uts/uts_2017_sum_cs/aye/aye.csproj @@ -0,0 +1,39 @@ + + + + Debug + x86 + {0C75C0DD-FEC4-4DE3-BB42-2BB9C2AE5C86} + Exe + aye + aye + v4.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + true + x86 + + + true + bin\Release + prompt + 4 + true + x86 + + + + + + + + + + \ No newline at end of file diff --git a/uts/uts_2017_sum_cs/uts_2017_sum.sln b/uts/uts_2017_sum_cs/uts_2017_sum.sln new file mode 100644 index 0000000..57f3e05 --- /dev/null +++ b/uts/uts_2017_sum_cs/uts_2017_sum.sln @@ -0,0 +1,23 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "C_Redact_rast", "C_Redact_rast\C_Redact_rast.csproj", "{1E8CCFCD-A327-4E5F-AE82-147D361DAEAF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aye", "aye\aye.csproj", "{0C75C0DD-FEC4-4DE3-BB42-2BB9C2AE5C86}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1E8CCFCD-A327-4E5F-AE82-147D361DAEAF}.Debug|x86.ActiveCfg = Debug|x86 + {1E8CCFCD-A327-4E5F-AE82-147D361DAEAF}.Debug|x86.Build.0 = Debug|x86 + {1E8CCFCD-A327-4E5F-AE82-147D361DAEAF}.Release|x86.ActiveCfg = Release|x86 + {1E8CCFCD-A327-4E5F-AE82-147D361DAEAF}.Release|x86.Build.0 = Release|x86 + {0C75C0DD-FEC4-4DE3-BB42-2BB9C2AE5C86}.Debug|x86.ActiveCfg = Debug|x86 + {0C75C0DD-FEC4-4DE3-BB42-2BB9C2AE5C86}.Debug|x86.Build.0 = Debug|x86 + {0C75C0DD-FEC4-4DE3-BB42-2BB9C2AE5C86}.Release|x86.ActiveCfg = Release|x86 + {0C75C0DD-FEC4-4DE3-BB42-2BB9C2AE5C86}.Release|x86.Build.0 = Release|x86 + EndGlobalSection +EndGlobal diff --git a/uts/uts_2017_sum_cs/uts_2017_sum.userprefs b/uts/uts_2017_sum_cs/uts_2017_sum.userprefs new file mode 100644 index 0000000..729b1d6 --- /dev/null +++ b/uts/uts_2017_sum_cs/uts_2017_sum.userprefs @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uts/uts_2017_sum_py/1/RAW.py b/uts/uts_2017_sum_py/1/RAW.py new file mode 100644 index 0000000..925e922 --- /dev/null +++ b/uts/uts_2017_sum_py/1/RAW.py @@ -0,0 +1,180 @@ +#RZ2T(CAM)_7.py: +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +n = int(input()) +a = list(map(int, input().split())) +t = int(input()) + +a.sort() +u, y = 0, 0 +for i in range(t): + x = list(map(int, input().split())) + if x[0] == 1: + u = u + 1 + elif x[0] == 2: + y = y + x[1] + elif x[0] == 3: + q = y / u + d = n + for j in range(n): + if a[j] > q: + d = j + break + print(n - d) + +sys.stdout.close() + +#RZ2T(CAM)_8.py: +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +x = int(input()) +a, b, c = list(map(int, input().split())) +z = [[a, 'a'], [b, 'b'], [c, 'c']] +z.sort() +c, b, a = z[0], z[1], z[2] + +for i in range(int(x / a[0]) + 1): + for j in range(int((x - a[0]) / b[0]) + 1): + if (x - j * b[0] - i * a[0]) % c[0] == 0: + a[0], b[0], c[0] = i, j, (x - j * b[0] - i * a[0]) / c[0] + +s = '' +for i in [a, b, c]: + if i[1] == 'a': + s = str(i[0]) + +for i in [a, b, c]: + if i[1] == 'b': + s = s + ' ' + str(i[0]) + +for i in [a, b, c]: + if i[1] == 'c': + s = s + ' ' + str(i[0]) + +print(s) + +sys.stdout.close() + +#RZ2T_7.py: +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +n, m = list(map(int, input().split())) + +b = 0 +for i in range(n): + a = list(map(int, input().split())) + c = 0 + for j in a: + if j == 0: + c = c + 1 + else: + b = max(b, c) + c = 0 + b = max(b, c) + +print(b) + +sys.stdout.close() + +#RZ2T_8.py: +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +n = int(input()) +a = [list(map(int, input().split())) for i in range(n)] +sal = [] +sup = [] +mel = [] +gar = [] +for i in a: + sal.append(i[0]) + sup.append(i[1]) + mel.append(i[2]) + gar.append(i[3]) +from collections import Counter + +print(Counter(sal).most_common(1)[0][0], + Counter(sup).most_common(1)[0][0], + Counter(mel).most_common(1)[0][0], + Counter(gar).most_common(1)[0][0]) + +#RZ2T_9.py: +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +n, m = list(map(int, input().split())) +a = [] +for i in range(n): + a.append(list(map(int, input().split()))) + +def check(mas): + f = True + for i in range(len(mas)): + if mas[i] != mas[0]: + f = False + return f + + +for i in range(len(a)): + if not check(a[i]): + print('NO') + quit() +try: + slov = {} + pos = 0 + last = a[pos][0] + slov[a[pos][0]] = 0 + while a[pos][0] == last: + slov[a[pos][0]] += 1 + last = a[pos][0] + pos += 1 + last = a[pos][0] + ### + try: + if slov[a[pos][0]]: + print('NO') + quit() + except Exception: + pass + slov[a[pos][0]] = 0 + while a[pos][0] == last: + slov[a[pos][0]] += 1 + last = a[pos][0] + pos += 1 + last = a[pos][0] + ### + try: + if slov[a[pos][0]]: + print('NO') + quit() + except Exception: + pass + slov[a[pos][0]] = 0 + while len(a) != pos and a[pos][0] == last: + slov[a[pos][0]] += 1 + last = a[pos][0] + pos += 1 + las = -1 + for i in slov: + if las == -1: + las = slov[i] + elif las != slov[i]: + print('NO') + quit() +except Exception: + print('NO') + quit() +print('YES') diff --git a/uts/uts_2017_sum_py/1/RZ2T_8.py b/uts/uts_2017_sum_py/1/RZ2T_8.py new file mode 100644 index 0000000..baa2733 --- /dev/null +++ b/uts/uts_2017_sum_py/1/RZ2T_8.py @@ -0,0 +1,21 @@ +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +n = int(input()) +a = [list(map(int, input().split())) for i in range(n)] +sal = [] +sup = [] +mel = [] +gar = [] +for i in a: + sal.append(i[0]) + sup.append(i[1]) + mel.append(i[2]) + gar.append(i[3]) +from collections import Counter +print(Counter(sal).most_common(1)[0][0], + Counter(sup).most_common(1)[0][0], + Counter(mel).most_common(1)[0][0], + Counter(gar).most_common(1)[0][0]) \ No newline at end of file diff --git a/uts/uts_2017_sum_py/1/RZ2T_9.py b/uts/uts_2017_sum_py/1/RZ2T_9.py new file mode 100644 index 0000000..7cd5bc9 --- /dev/null +++ b/uts/uts_2017_sum_py/1/RZ2T_9.py @@ -0,0 +1,72 @@ +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +n, m = list(map(int, input().split())) +a = [] +for i in range(n): + a.append(list(map(int, input().split()))) + +#for i in range(len(a)): +# print(a[i]) + +def check(mas): + f = True + for i in range(len(mas)): + if mas[i] != mas[0]: + f = False + return f + +for i in range(len(a)): + if not check(a[i]): + print('NO') + quit() +try: + slov = {} + pos = 0 + last = a[pos][0] + slov[a[pos][0]] = 0 + while a[pos][0] == last: + slov[a[pos][0]] += 1 + last = a[pos][0] + pos += 1 + last = a[pos][0] + ### + try: + if slov[a[pos][0]]: + print('NO') + quit() + except Exception: + pass + slov[a[pos][0]] = 0 + while a[pos][0] == last: + slov[a[pos][0]] += 1 + last = a[pos][0] + pos += 1 + last = a[pos][0] + ### + try: + if slov[a[pos][0]]: + print('NO') + quit() + except Exception: + pass + slov[a[pos][0]] = 0 + while len(a) != pos and a[pos][0] == last: + slov[a[pos][0]] += 1 + last = a[pos][0] + pos += 1 + + #print(slov) + las = -1 + for i in slov: + if las == -1: + las = slov[i] + elif las != slov[i]: + print('NO') + quit() +except Exception: + print('NO') + quit() +print('YES') diff --git a/uts/uts_2017_sum_py/1/input.txt b/uts/uts_2017_sum_py/1/input.txt new file mode 100644 index 0000000..a0b0d67 --- /dev/null +++ b/uts/uts_2017_sum_py/1/input.txt @@ -0,0 +1,6 @@ +5 +1 1 3 2 +1 3 2 2 +2 2 2 2 +1 4 4 3 +2 1 1 2 diff --git a/uts/uts_2017_sum_py/2/RZ2T(SAM)_7.py b/uts/uts_2017_sum_py/2/RZ2T(SAM)_7.py new file mode 100644 index 0000000..993aa34 --- /dev/null +++ b/uts/uts_2017_sum_py/2/RZ2T(SAM)_7.py @@ -0,0 +1,55 @@ +# RZ2T(SAM)_7.py +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +s = input() +a = [] +for i in range(len(s)): + try: + if 1 <= int(s[i] + s[i+1]) <= 26: + a.append(int(s[i] + s[i+1])) + s = s[:i] + 'aa' + s[i+2:] + else: + raise Exception('No number') + except Exception: + try: + if int(s[i]): + a.append(int(s[i])) + s = s[:i] + 'a' + s[i + 1:] + except Exception: + pass +s = '' +slov = { + 1: 'z', + 2: 'y', + 3: 'x', + 4: 'w', + 5: 'v', + 6: 'u', + 7: 't', + 8: 's', + 9: 'r', + 10: 'q', + 11: 'p', + 12: 'o', + 13: 'n', + 14: 'm', + 15: 'l', + 16: 'k', + 17: 'j', + 18: 'i', + 19: 'h', + 20: 'g', + 21: 'f', + 22: 'e', + 23: 'd', + 24: 'c', + 25: 'b', + 26: 'a', +} +for i in a: + s += slov[i] +print(s) +# ------------------------------------------ # diff --git a/uts/uts_2017_sum_py/2/RZ2T(SAM)_8.py b/uts/uts_2017_sum_py/2/RZ2T(SAM)_8.py new file mode 100644 index 0000000..0aae2e9 --- /dev/null +++ b/uts/uts_2017_sum_py/2/RZ2T(SAM)_8.py @@ -0,0 +1,29 @@ +# RZ2T(SAM)_8.py +import sys + +sys.stdin = open('input.txt', 'r') +sys.stdout = open('output.txt', 'w') + +n = int(input()) +a = list(map(int, input().split())) + +counter_ros = 0 +counter_vio = 0 +ros = [] +vio = [] + +for i in range(1, n+1): + if a[i-1] == i % 2: + if i % 2 == 0: + ros.append(i-1) + counter_ros += 1 + else: + vio.append(i-1) + counter_vio += 1 +if counter_vio == counter_ros: + print(counter_ros) + for i in range(counter_ros): + print(ros[i]+1, ' ', vio[i]+1) +else: + print(-1) +# ------------------------------------------ # diff --git a/uts/uts_2017_sum_py/2/ads.py b/uts/uts_2017_sum_py/2/ads.py new file mode 100644 index 0000000..8cffd98 --- /dev/null +++ b/uts/uts_2017_sum_py/2/ads.py @@ -0,0 +1,14 @@ +import sys + +sys.stdin = open('input.txt', 'r') +#sys.stdout = open('output.txt', 'w') +a = [] +try: + while True: + a.append(int(input())) +except Exception: + pass + +a.sort() +print(a[0]) +print(a[len(a)-1]) \ No newline at end of file diff --git a/uts/uts_2017_sum_py/2/das b/uts/uts_2017_sum_py/2/das new file mode 100644 index 0000000..37b9d9e --- /dev/null +++ b/uts/uts_2017_sum_py/2/das @@ -0,0 +1,29 @@ +begin + var n := ReadInteger(); + var roses := new integer[n]; + var count_roses := 0; + var violets := new integer[n]; + var count_violets := 0; + for var i := 1 to n do + begin + if ReadInteger() = i mod 2 then + if i mod 2 = 0 then + begin + roses[count_roses] := i; + inc(count_roses); + end + else + begin + violets[count_violets] := i; + inc(count_violets); + end; + end; + if count_roses = count_violets then + begin + writeln(count_roses); + for var i := 0 to count_roses - 1 do + println(roses[i], violets[i]); + end + else + write(-1) +end. diff --git a/uts/uts_2017_sum_py/2/input.txt b/uts/uts_2017_sum_py/2/input.txt new file mode 100644 index 0000000..f7314ad --- /dev/null +++ b/uts/uts_2017_sum_py/2/input.txt @@ -0,0 +1,16 @@ +160 +160 +185 +170 +160 +130 +110 +170 +190 +160 +160 +130 +190 +145 +210 +130 diff --git a/uts/uts_2017_sum_py/3/A.py b/uts/uts_2017_sum_py/3/A.py new file mode 100644 index 0000000..9c1d48b --- /dev/null +++ b/uts/uts_2017_sum_py/3/A.py @@ -0,0 +1,40 @@ +import sys +import itertools +sys.stdin = open('balls.in', 'r') +#sys.stdout = open('balls.out', 'w') + +n = int(input()) +query = [int(input()) for i in range(n)] +''' +yadra = [0] +count = 0 +storona = 2 +while count <= 300000: + sum = 0 + for i in range(storona): + sum += i + storona += 1 + count += sum + yadra.append(sum + yadra[-1]) + +print(yadra) +yadra.pop(0) +''' +yadra = [1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286, 364, 455, 560, 680, 816, 969, 1140, 1330, 1540, 1771, 2024, 2300, 2600, 2925, 3276, 3654, 4060, 4495, 4960, 5456, 5984, 6545, 7140, 7770, 8436, 9139, 9880, 10660, 11480, 12341, 13244, 14190, 15180, 16215, 17296, 18424, 19600, 20825, 22100, 23426, 24804, 26235, 27720, 29260, 30856, 32509, 34220, 35990, 37820, 39711, 41664, 43680, 45760, 47905, 50116, 52394, 54740, 57155, 59640, 62196, 64824, 67525, 70300, 73150, 76076, 79079, 82160, 85320, 88560, 91881, 95284, 98770, 102340, 105995, 109736, 113564, 117480, 121485, 125580, 129766, 134044, 138415, 142880, 147440, 152096, 156849, 161700, 166650, 171700, 176851, 182104, 187460, 192920, 198485, 204156, 209934, 215820, 221815, 227920, 234136, 240464, 246905, 253460, 260130, 266916, 273819, 280840, 287980, 295240, 302621] + +for coun in query: + count = coun + counter = 0 + index = 0 + while yadra[index + 1] <= count: + index += 1 + late = yadra[:index+1] + combs = 1 + flag = True + while flag: + for i in itertools.combinations_with_replacement(late, combs): + if count - sum(i) == 0: + print(combs) + flag = False + break + combs += 1 diff --git a/uts/uts_2017_sum_py/3/B.py b/uts/uts_2017_sum_py/3/B.py new file mode 100644 index 0000000..8d0e8c2 --- /dev/null +++ b/uts/uts_2017_sum_py/3/B.py @@ -0,0 +1,17 @@ +import sys + +sys.stdin = open('count.in', 'r') +sys.stdout = open('count.out', 'w') + +m, n = list(map(int, input().split())) +x = [[0 for i in range(31)] for j in range(31)] +s = 0 +for i in range(31): + x[1][i] = 1 +for i in range(2, m+1): + for j in range(n+1): + for k in range(j+1): + x[i][j] += x[i-1][k] +for i in range(n+1): + s += x[m][i] +print(s) diff --git a/uts/uts_2017_sum_py/3/balls.in b/uts/uts_2017_sum_py/3/balls.in new file mode 100644 index 0000000..6fca7a1 --- /dev/null +++ b/uts/uts_2017_sum_py/3/balls.in @@ -0,0 +1,6 @@ +5 +1 +5 +9 +15 +91 \ No newline at end of file diff --git a/uts/uts_2017_sum_py/3/count.in b/uts/uts_2017_sum_py/3/count.in new file mode 100644 index 0000000..85bd72a --- /dev/null +++ b/uts/uts_2017_sum_py/3/count.in @@ -0,0 +1 @@ +3 5 \ No newline at end of file diff --git a/uts/uts_2017_sum_py/5/C.py b/uts/uts_2017_sum_py/5/C.py new file mode 100644 index 0000000..08688a2 --- /dev/null +++ b/uts/uts_2017_sum_py/5/C.py @@ -0,0 +1,24 @@ +#import sys + +#sys.stdin = open('rectangles.in', 'r') +#sys.stdout = open('rectangles.out', 'w') +n, m, k = map(int, input().split()) +a = [[100000, 0, 100000, 0] for i in range(k)] +field = [] + +for i in range(n): + field.append(list(map(int, input().split()))) + +field.reverse() + +for i in range(n): + for j in range(m): + if field[i][j] > 0: + v = field[i][j] - 1 + a[v][0] = min(a[v][0], j) + a[v][1] = max(a[v][1], j) + a[v][2] = min(a[v][2], i) + a[v][3] = max(a[v][3], i) + +for i in range(k): + print(a[i][0], a[i][2], a[i][1] + 1, a[i][3] + 1) diff --git a/uts/uts_2017_sum_py/5/D.py b/uts/uts_2017_sum_py/5/D.py new file mode 100644 index 0000000..f7f364d --- /dev/null +++ b/uts/uts_2017_sum_py/5/D.py @@ -0,0 +1,34 @@ +import sys + +sys.stdin = open('robot.in', 'r') +s = input() + +d = 0 +a = [] +f = 0 +c = 0 +x = 0 +y = 0 +for i in s: + if i == 'S': + if (x, y) in a: + print(c) + exit() + a.append((x, y)) + c += 1 + if d == 0: + x += 1 + if d == 1: + y += 1 + if d == 2: + x -= 1 + if d == 3: + y -= 1 + if i == 'L': + d = (d + 1) % 4 + if i == 'R': + d = (d - 1) % 4 +if (x, y) in a: + print(c) +else: + print(-1) diff --git a/uts/uts_2017_sum_py/5/rectangles.in b/uts/uts_2017_sum_py/5/rectangles.in new file mode 100644 index 0000000..da418d8 --- /dev/null +++ b/uts/uts_2017_sum_py/5/rectangles.in @@ -0,0 +1,5 @@ +4 5 2 +0 2 2 2 2 +0 2 2 2 2 +1 1 2 2 2 +1 1 0 0 0 diff --git a/uts/uts_2017_sum_py/5/robot.in b/uts/uts_2017_sum_py/5/robot.in new file mode 100644 index 0000000..edda2db --- /dev/null +++ b/uts/uts_2017_sum_py/5/robot.in @@ -0,0 +1 @@ +RSSSSLSLSSLS \ No newline at end of file diff --git a/uts/uts_2k17_march_py/DER/A b/uts/uts_2k17_march_py/DER/A new file mode 100755 index 0000000000000000000000000000000000000000..202ea11386072da737b3c34d53076aa26d21b3dc GIT binary patch literal 14080 zcmeHOe{fXCec#hbAPh*t1{;F|SArcV`Y2rGxP0~!#8QhNT@uV3L;0lr+fxGc8qeZqQ;}wM73#P315cH^>A2liSqFL2f$S;+u z{Y=S^l6pkc;Zcq z%l|zJ#ar`XLGAKPfWHfDBKhG0cK*2l{^J7pV+HW{3e@|<0(hbTepdne-zv zv@00bjd(C>0MN8%VAb1$iD*cVCX9F_*wN6cw^r&}OO4*#Qcb!WTa4OhETKaxva+Ew zYSdS0Pg!`?N~O9(=}uI|+A6K-K`N-$8(?NrSEREe7LHIOySw$SNIVhi47Nv&-TG6N z(rh%I(3+zY)eKXPnqxPsIlrMd6))IOa=}OHs;m%W(P0e(ayvsIJwaTR(Azqnj&_Fi z=13yh5fLa1Sz=xBXs59Q{s?sk^`H^yjv68n3U(4iQfeGKg3(T~e(hSl+FL2sZrS3m zYtXB_)na{PLmgPaE3Le~!n?xzNtzpU|GM!@|J>PsB{E0%KW=65GUg`Vk4^XNo=z+K zWnh$C(4#DsSK|7YBTr!2FBZR1I>yo$u++N6jjX&&yspY1E|T-2)2J2G)cQ5La2vsL zEm4r<$80#SrBpE2vrU#y#jmPD@*W#b>lddbHr)PvskiA-Zh%3>)5U!)My?K=0MkK&s@WJ3J!L zH((THh625Bm!8Z@WIp)K{=Ym$!>PeV6ySn`h(PeU+rQ1aV}Cl`!%R!V#b3KTSNjZlqH3D~Ko8jCjCTz1Lu#eJo)9JkWb_w5he>)Ib-W;DJ-eg(Rmw zF%x~B^UUoY@t@@j>xFphWjL}eu>2rMpm(e+U|xD^{#&pn-8XCNF)GMh*ipW4KY?QF zN%GnbFY`yKye+WrSJJ@o58W^jFh>K&)At8lgMqUj8gsJNrn9y3g|GvYsK4hke~Gq; z@@42{jlE9_nW3#Cd!R#kjJ(I(d(}*) z&9;jvExlU1n4AY1IFy>*H-J{Aw5x$b=Ip+0t9OVi(NtSHrCoFlogFi^>nQ4OD1ddD)xpV)!a z2GUu2*8E}b30L`%6C-~mHHKDe!^zuWYPEJQS;h*otIwv|hEv)(tE=fie;Y3COu+m} zz&w>+jG3FNOl=sF{y5*i2DK0S%~5kOy$(I~n{TJKo`F};KNJ4zZ^NYxDdlofu0W~u z(|P!*8-6~E_t#JXI{^(U8o|ys*IS^g?|~ zI}J~0=5fmzbno576D4H8=?Qd-obdzp$Mp|sQo&8OsRPbAb;kQ~#dQ$Qt9^uBx9@5# zJRa!pyKp0u`5vtqNBiiu#yGzIhfL7>LUxOIsf58Q!l&x=4tb|t+iXxT66H&%h^`` z^1m{fE1zLA{^W|(8`4a_G^32Yz{cKp+MA8h>DAJ%kvlPI{)zgk27(6a3T$UPc`AJd ztT}w8Dqxi{H=}scORYU!Na6~ z`5)m)^>3`-XkKnKuhqjsX7>3&?@3o+)lZX` z>6!n?R{x{^t^UXS`pJXi&#MnkVl>E}dMlv!Jb|}TFWxYT#FB=%JB6i{?=qS1gT9U?902_eyjP65-hlZQ25rIwJ3tE;=F&OPzr($L9rP0DU8v&spckPx z1O8nMd?jc-Xc%-2%FluB2c>-}CD)#2;p(n%&7U!~^q^~M1>tlS;X(b&NI<2D<%L*` za+0q=yDyMzS;e}txet_2f4a0s+&^#ipH?qkL@>$JQ!(0iD*^tpisy>f&YZFV6@#Vn zFs@fo@7F=Iq7p+K3?B$_x{ciwI7bsthvbS;l6!xdWA6fhB54d}ai~e9) zvHEir#oveDSKH;ZUbnl-#bUC(5QG1k8l?xPx@pVkw)|+>p*oLX+-O{i*WBjI))|1U z@}g|N9z{KWi}AdV46 zp8n#xvLy#f0%euYO$n6M_DpNqz5KFFzJCw5B%SIz;laF z8r@fJQK5LQ39qs;IcdKF7^ky&O3c&QI;9yF5lz^_QsT2;1DkhBcgkP-&bm$J<}02~ zMJUa)h`6B2Y5zir_Bxb)`(Y+V^iYwHNcLN=uh`=GtbCxz;^|o*Hkpx5~4kvg%Wn)s;0inL=4NW@~McFRz%sL$ywbyM-|! zUYwnOc4KbL#(@dtrwE>(x$;xRMC0nlZ0GrqD?d%}yvoII$0^4TGocjL=3ZS$SUEpE%M6ZSGUcHO)_ z$M8*KrHno$CJ2#qSh76XNs4;R$hG-NvoZGEyww$9Z0E zqIF^-oWfOHSf!l(@>w>e}PDPZlYBz=6|8SCV(G_YVShVb$gK^LqZU#Pj{UPucM} zo*VsAK7YLa9{5E4`bQ~WF7~VW!}b11;`0QZgHmGrJo423wdFp75rt%>84w_xpJ%+D z7xL%FAny{hM6F}KEt7b@pQ)CK+W#rpu>5)cfV7i8f3`{a+w$h^lM3hOq3V{{FYV;d z+kJQ-dGHi<&O>@W-^$81`qvVlDd;OBC4QduA#*GI#&KNBWT_DU0C|tf+sSvOo&0rR zK;m{uD}Si~UW|Gdq28~kapX2HknPF0L-AiEL~SRD1ePfqH+T2nk%_Vbqu*lCB~s6AVhysB3GT*}WBmz1C7SuzT*6|keBA{sAezZ!wld~n7Ybts(c zW7;S2nd0hnpM>PuG;&{4IDK!YL}$&EZpd-Te{LQwV1EQS`G>ybQsQwDQG_FTLn0J6 z5=L^z4rF!xfwj$gV?#?T0-wT>cw{Hynj#2!>d-^&vCc>W65*J>vpu#w*sh0-SUjNz zlieZ|>*#8a7?H5IW>pR1kR}q+cc4B!7>@^c>yb_)zFX{w2RkBqIN8y$8!9$Vr!k{x}uR#K_h5|XJNdmDz_)2?O{aMMIuoe5xsT8T6X{cDu&F_5IvlT>ANuK?G!a9L&C_T zYMR)B({38xmfyo<7meulL?YXT7Nfc&*xeA-njdV{TUOA2bZldb6_V#@793yQ5$(*E z{%FB+1;Xu|l~h$enT*7DvscNlc3!DAHxG;n^WT)d| z{edDMIDvh(B%()knBLAP%lg*akr11K;T0pR&--wn>L{NJK}05}{~iNMXEIzr@7Fi0 zgC>uqmOY1JIi^pboX&Wd=Y4&*(x>)Opo-76NS}1Le%Aj2F!G72E_{;GW3yj%=<_*-p#=Fnj^&;0KdkiG|2^t`y+`Rgclb{I zZ#(q)?=<-DH=HYkQ~yneKA)dd%t8UupK-%1HamWb6$8kS|5=RBS=Ok(gW+*zdFTB9 zF$yRyndT-X-ly{4gE;-o^M~obL#G@U>+`wI1@-qbEJwB}G0*feFlrO)^EpWRf6yme zlzxqi?=9l_9Eks3haJQ7o9pF%jX}p=Kc5$kE+lKTN6AgB&-4b0?fSyA%~J4Kq{kxJ zU)Ezf1ay+O8>22=boG@nAOEBRexm`u`;aB=k;7n zZKY(VJol^;>-RN}MW0t4rQuwOi~G&!R-f literal 0 HcmV?d00001 diff --git a/uts/uts_2k17_march_py/DER/A.cpp b/uts/uts_2k17_march_py/DER/A.cpp new file mode 100644 index 0000000..0b261b0 --- /dev/null +++ b/uts/uts_2k17_march_py/DER/A.cpp @@ -0,0 +1,75 @@ +#include +#include +#include +using namespace std; +#define MAXN 100007 + +int a[MAXN], tree[4 * MAXN], upd[4 * MAXN], n; + +void build_tree(int v, int tl, int tr) +{ + if(tl == tr) tree[v] = a[tl]; + else + { + int tm = (tl + tr) >> 1; + build_tree(v + v, tl, tm); + build_tree(v + v + 1, tm + 1, tr); + tree[v] = tree[v + v] + tree[v + v + 1]; + } +} + +int query_tree(int v, int tl, int tr, int l, int r) +{ + if(l > r) return 0; + if(upd[v] != -1) return upd[v] * (r - l + 1); + if(l == tl && r == tr) return tree[v]; + int tm = (tl + tr) >> 1; + return query_tree(v + v, tl, tm, l, min(r, tm)) + query_tree(v + v + 1, tm + 1, tr, max(l, tm + 1), r); +} + +void update_tree(int v, int tl, int tr, int l, int r, int color) +{ + if(l > r) return; + if(l == tl && tr == r) + { + upd[v] = color; + tree[v] = color * (r - l + 1); + } + else + { + upd[v] = -1; + int tm = (tl + tr) >> 1; + update_tree(v + v, tl, tm, l, min(r, tm), color); + update_tree(v + v + 1, tm + 1, tr, max(l, tm + 1), r, color); + tree[v] = tree[v + v] + tree[v + v + 1]; + } +} + +int main() +{ + ifstream cin("sum.in"); + ofstream cout("sum.out"); + int k; + cin >> n >> k; + for(int i = 0; i < 4 * MAXN; i++) upd[i] = -1; //Изначально все отрезки(вершины) не обновлены + build_tree(1, 0, n-1); + int q, x, l, r; + char type; + scanf("%d", &q); + for(int i = 0; i < k; i++) + { + cin >> type; + cin >> l; + cin >> r; + if(type == 'Q') + { + printf("%d\n", query_tree(1, 0, n - 1, l, r)); + } + else if(type == 'A') + { + update_tree(1, 0, n - 1, l, l, r); + } + } + + return 0; +} diff --git a/uts/uts_2k17_march_py/DER/A.py b/uts/uts_2k17_march_py/DER/A.py new file mode 100644 index 0000000..fec9570 --- /dev/null +++ b/uts/uts_2k17_march_py/DER/A.py @@ -0,0 +1,42 @@ +import sys +problem_name = str('sum') +sys.stdin = open(problem_name + ".in", "r") +#sys.stdout = open(problem_name+".out", "w") + +def deld(a): + left = len(a) // 2 + right = len(a) // 2 + len(a) % 2 + print(0, ' ', left, ' ', right, ' ', left+right) + b = [a[i] for i in range(left)] + c = [a[i] for i in range(left, left+right)] + return b, c + +def build(a, fab): + if len(a) <= 1: + return + left, right = deld(a) + fab.append([0]) + fab.append([0]) + build(left, fab[0]) + build(right, fab[1]) + +def build_linkers(a, fab): + + +n, k = list(map(int, input().split())) +mas = [[0] for i in range(n)] +fab = [] +build(mas, fab) +query = [] +for i in range(k-1): + s = input().split() + s[1] = int(s[1])-1 + s[2] = int(s[2]) + if s[0] == 'A': + mas[s[1]] = [s[2]] + else: + query.append(s) + +print(query) +print(mas) +print(fab) \ No newline at end of file diff --git a/uts/uts_2k17_march_py/DER/sum.in b/uts/uts_2k17_march_py/DER/sum.in new file mode 100644 index 0000000..f38ae92 --- /dev/null +++ b/uts/uts_2k17_march_py/DER/sum.in @@ -0,0 +1,10 @@ +5 9 +A 2 2 +A 3 1 +A 4 2 +Q 1 1 +Q 2 2 +Q 3 3 +Q 4 4 +Q 5 5 +Q 1 5 diff --git a/uts/uts_2k17_march_py/Dun/A.py b/uts/uts_2k17_march_py/Dun/A.py new file mode 100644 index 0000000..a6328f2 --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/A.py @@ -0,0 +1,9 @@ +import sys +from math import factorial +problem_name = str('combs') +sys.stdin = open(problem_name + ".in", "r") +#sys.stdout = open(problem_name+".out", "w") +n, k = list(map(int, input().split())) +print(int(factorial(n)/(factorial(k)*factorial(n-k)))) +f = open('safdsf') +f.close() \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/B.py b/uts/uts_2k17_march_py/Dun/B.py new file mode 100644 index 0000000..41780ac --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/B.py @@ -0,0 +1,14 @@ +import sys +problem_name = str('slalom') +sys.stdin = open(problem_name + ".in", "r") +sys.stdout = open(problem_name+".out", "w") + +n= int(input()) +a = [] +for i in range(n): + a.append(list(map(int, input().split()))) +count=0 +for i in reversed(range(len(a)-1)): + for j in range(len(a[i])): + a[i][j] = a[i][j] + max(a[i+1][j], a[i+1][j+1]) +print(a[0][0]) \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/C.py b/uts/uts_2k17_march_py/Dun/C.py new file mode 100644 index 0000000..d05b8b3 --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/C.py @@ -0,0 +1,5 @@ +import sys +problem_name = str('mushroom') +sys.stdin = open(problem_name + ".in", "r") +sys.stdout = open(problem_name+".out", "w") + diff --git a/uts/uts_2k17_march_py/Dun/D.py b/uts/uts_2k17_march_py/Dun/D.py new file mode 100644 index 0000000..724851e --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/D.py @@ -0,0 +1,18 @@ +import sys +problem_name = str('field') +sys.stdin = open(problem_name + ".in", "r") +sys.stdout = open(problem_name+".out", "w") + +n, m = map(int, input().split()) +a = [] +b = [[10**9] * n for i in range(m)] +for i in range(m): + a.append(list(map(int, input().split()))) +b[0][0] = 0 +for i in range(m): + for j in range(n): + if i - 1 >= 0: + b[i][j] = abs(a[i][j] - a[i - 1][j]) + b[i - 1][j] + if j - 1 >= 0: + b[i][j] = min(b[i][j], b[i][j - 1] + abs(a[i][j] - a[i][j - 1])) +print(b[m - 1][n - 1]) \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/E.py b/uts/uts_2k17_march_py/Dun/E.py new file mode 100644 index 0000000..adfc0b2 --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/E.py @@ -0,0 +1,22 @@ +import sys +problem_name = str('goat') +sys.stdin = open(problem_name + ".in", "r") +#sys.stdout = open(problem_name+".out", "w") + +m, n, k = map(int, input(). split()) +T = [[False]*(n+1) for i in range(m+1)] +for i in range(k): + n, y = map(int, input().split()) + T[n - 1][y - 1] = True +C = [[0]*(n+1) for i in range(m+1)] +C[1][1] = 1 +dead = 0 +for i in range(1, m+1): + for j in range(1, n+1): + if i == 1 and j == 1: + comb = 1 + else: + comb = C[i-1][j] + C[i][j-1] + if T[i][j]: + dead += comb + comb = 0 \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/H.py b/uts/uts_2k17_march_py/Dun/H.py new file mode 100644 index 0000000..feed6cb --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/H.py @@ -0,0 +1,9 @@ +import sys +import re +problem_name = str('patterns') +sys.stdin = open(problem_name + ".in", "r") +sys.stdout = open(problem_name+".out", "w") +if re.compile(input().replace('*', '.*').replace('?', '.')).match(input()) != None: + print('YES') +else: + print('NO') diff --git a/uts/uts_2k17_march_py/Dun/combs.in b/uts/uts_2k17_march_py/Dun/combs.in new file mode 100644 index 0000000..316bd14 --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/combs.in @@ -0,0 +1 @@ +3 2 \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/field.in b/uts/uts_2k17_march_py/Dun/field.in new file mode 100644 index 0000000..0cc504d --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/field.in @@ -0,0 +1,3 @@ +4 2 +1 2 3 5 +3 8 4 7 \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/goat.in b/uts/uts_2k17_march_py/Dun/goat.in new file mode 100644 index 0000000..228729e --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/goat.in @@ -0,0 +1,5 @@ +2 2 1 +1 2 +2 2 2 +1 2 +2 1 \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/mushroom.in b/uts/uts_2k17_march_py/Dun/mushroom.in new file mode 100644 index 0000000..d8d13d7 --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/mushroom.in @@ -0,0 +1,6 @@ +4 4 3 2 +1 4 +2 3 +4 3 +2 2 +3 4 \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/patterns.in b/uts/uts_2k17_march_py/Dun/patterns.in new file mode 100644 index 0000000..bdf2013 --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/patterns.in @@ -0,0 +1,2 @@ +k?t?n +kitten \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Dun/slalom.in b/uts/uts_2k17_march_py/Dun/slalom.in new file mode 100644 index 0000000..2b193af --- /dev/null +++ b/uts/uts_2k17_march_py/Dun/slalom.in @@ -0,0 +1,5 @@ +4 +1 +4 3 +5 6 7 +8 9 0 9 \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Str/A.py b/uts/uts_2k17_march_py/Str/A.py new file mode 100644 index 0000000..e73844a --- /dev/null +++ b/uts/uts_2k17_march_py/Str/A.py @@ -0,0 +1,55 @@ +import sys + +ID = "strings" +sys.stdin = open(ID + ".in", "r") + + +# sys.stdout = open(ID + ".out", "w") + +def KMP(s, x): + S = x + '#' + s # Большая строка + print('S = ' + S) + P = [0] * len(S) # Префикс-функция + m = len(x) # Длина подстроки + # print(template) + found = False + for i in range(1, len(S)): + # Префикс-функция для предыдущего + # символа + # i - индекс в строке + # j - индекс в префиксе (подстроке) + print() + print('Символ: ' + S[:i] + "[" + S[i] + "]" + S[(i + 1):], end=' ') + j = P[i - 1] # незачем смотреть всю строку, можно посмотреть со сдвига прошлой подстроки + print('P[' + str(i - 1) + '] = ' + str(j), end=' ') + while j > 0 and S[j] != S[i]: + print('j: ' + str(j - 1) + + ' -> P[' + str(j - 1) + '] = ' + + str(P[j - 1]), end=' ') + j = P[j - 1] + if S[j] == S[i]: + j += 1 + print(' S[' + str(j) + '] == S[' + str(i) + '] == ' + str(S[i]) + ' ' + + 'P[' + str(i) + '] = ' + str(j), end=' ') + P[i] = j + # Если видим длину подстроки + # то мы её нашли + if j == m: + if found: + print(' ', end='') + found = True + print(i - m * 2 + 1) + if not found: + print('none') + print(P) + + +while True: + try: + s = input() + t = input() + except EOFError: + break + KMP(s, t) + +sys.stdout.close() diff --git a/uts/uts_2k17_march_py/Str/B.py b/uts/uts_2k17_march_py/Str/B.py new file mode 100644 index 0000000..9ef5a56 --- /dev/null +++ b/uts/uts_2k17_march_py/Str/B.py @@ -0,0 +1,7 @@ +import sys +import collections +problem_name = str('substr') +sys.stdin = open(problem_name + ".in", "r") +sys.stdout = open(problem_name+".out", "w") + +print(collections.Counter(input()).most_common()[0][0]) \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Str/C.py b/uts/uts_2k17_march_py/Str/C.py new file mode 100644 index 0000000..48d839f --- /dev/null +++ b/uts/uts_2k17_march_py/Str/C.py @@ -0,0 +1,5 @@ +import sys +problem_name = str('double') +sys.stdin = open(problem_name + ".in", "r") +#sys.stdout = open(problem_name+".out", "w") + diff --git a/uts/uts_2k17_march_py/Str/D.py b/uts/uts_2k17_march_py/Str/D.py new file mode 100644 index 0000000..9a178fe --- /dev/null +++ b/uts/uts_2k17_march_py/Str/D.py @@ -0,0 +1,4 @@ +import sys +problem_name = str('genstr') +sys.stdin = open(problem_name + ".in", "r") +sys.stdout = open(problem_name+".out", "w") diff --git a/uts/uts_2k17_march_py/Str/double.in b/uts/uts_2k17_march_py/Str/double.in new file mode 100644 index 0000000..63d7f6c --- /dev/null +++ b/uts/uts_2k17_march_py/Str/double.in @@ -0,0 +1,2 @@ +aaaaaab +5 \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Str/strings.in b/uts/uts_2k17_march_py/Str/strings.in new file mode 100644 index 0000000..f55762a --- /dev/null +++ b/uts/uts_2k17_march_py/Str/strings.in @@ -0,0 +1,2 @@ +abbabas +aba \ No newline at end of file diff --git a/uts/uts_2k17_march_py/Str/substr.in b/uts/uts_2k17_march_py/Str/substr.in new file mode 100644 index 0000000..f2ba8f8 --- /dev/null +++ b/uts/uts_2k17_march_py/Str/substr.in @@ -0,0 +1 @@ +abc \ No newline at end of file