Advertisement
Guest User

Zajecia 2

a guest
Jul 16th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. Zajecia 2
  2.  
  3. 1. Zliczanie wierzcholkow na danej glebokosci:
  4. from collections import deque
  5. n = int(input())
  6.  
  7. G = [ [] for _ in range(n + 1) ]
  8. for i in range(n - 1):
  9. a, b = map(int, input().split())
  10. G[ a ].append(b)
  11. G[ b ].append(a)
  12.  
  13. x = int(input())
  14.  
  15. Q = deque()
  16. odwiedzone = set()
  17. glebokosci = [ 0 for _ in range(n + 1) ]
  18.  
  19. odwiedzone.add( 1 )
  20. Q.append( (1,0) )
  21.  
  22. while( len(Q) > 0 ):
  23. act = Q.popleft()
  24. glebokosci[ act[ 1 ] ] += 1
  25.  
  26. for w in G[ act[ 0 ] ]:
  27. if not w in odwiedzone:
  28. odwiedzone.add( w )
  29. Q.append( (w, act[ 1 ] + 1) )
  30.  
  31. print(glebokosci[ x - 1 ])
  32.  
  33.  
  34. 2. two-pointery
  35. Sprawdzanie czy istnieje spojny podciag w tablicy o sumie x
  36.  
  37. tab = [1,1,3,4,7,7,8,9]
  38. n = len(tab)
  39.  
  40. p1, p2 = 0, 0
  41.  
  42. x = 17
  43. sum = 0
  44. znaleziono = False
  45. while p1 < n:
  46. while p2 < n and sum < x:
  47. sum += tab[ p2 ]
  48. p2 += 1
  49.  
  50. if sum == x or p1 >= p2:
  51. if sum == x:
  52. znaleziono = True
  53. break
  54. sum -= tab[ p1 ]
  55. p1 += 1
  56.  
  57. if not znaleziono:
  58. print('Nie znaleziono\n')
  59. else:
  60. print(sum)
  61.  
  62.  
  63. 3. Dalej two-pointery
  64. Wybieranie z tablicy jak najwiekszej liczby elementow, gdzie
  65. roznica miedzy najwiekszym a najmniejszym jest <= 5
  66.  
  67. n = int(input())
  68. tab = list(map(int, input().split()))
  69.  
  70. tab.sort()
  71.  
  72. p1, p2 = 0,0
  73. najdluzszy = 0
  74. while p1 < n:
  75. while p2 < n and tab[ p2 ] - tab[ p1 ] <= 5:
  76. p2 += 1
  77. najdluzszy = max(najdluzszy, p2 - p1)
  78. p1 += 1
  79.  
  80. print(najdluzszy)
  81.  
  82.  
  83. 4. Wczytywanie labiryntu
  84.  
  85. fstream plik;
  86. plik.open("maze.txt");
  87.  
  88. string x;
  89. while( !plik.eof() ){
  90. getline(plik, x);
  91. MAZE.push_back( x );
  92. }
  93. plik.close();
  94.  
  95. for(auto m: MAZE) cout << m << endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement