Advertisement
NikolaDimov

[APS][JAVA] code exercises (posto code e preoptovaren)

Nov 16th, 2018
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.00 KB | None | 0 0
  1. =======================1=======================
  2. Палиндром Problem 1 (0 / 0)
  3. Дадена е двојно поврзана листа со N јазли каде секој јазел содржи по еден карактер (буква).
  4. Да се провери дали двојно поврзаната листа е палиндром:
  5. односно ако ја изминете од почеток до крај и од крај до почеток, дали ќе добиете ист збор.
  6. Во првиот ред од влезот даден е бројот на јазли во листата N, а во вториот ред се дадени броевите.
  7. На излез треба да се испечати 1 ако листата е палиндром, -1 ако не е.
  8.  
  9. Име на класата: PalindromeDLL
  10.  
  11. import java.util.Scanner;
  12.  
  13. class DLLNode<E> {
  14. protected E element;
  15. protected DLLNode<E> pred, succ;
  16.  
  17. public DLLNode(E elem, DLLNode<E> pred, DLLNode<E> succ) {
  18. this.element = elem;
  19. this.pred = pred;
  20. this.succ = succ;
  21. }
  22.  
  23. @Override
  24. public String toString() {
  25. return "<-" + element.toString() + "->";
  26. }
  27. }
  28.  
  29. class DLL<E> {
  30. private DLLNode<E> first, last;
  31.  
  32. public DLL() {
  33. // Construct an empty SLL
  34. this.first = null;
  35. this.last = null;
  36. }
  37.  
  38. public void deleteList() {
  39. first = null;
  40. last = null;
  41. }
  42.  
  43. public int length() {
  44. int ret;
  45. if (first != null) {
  46. DLLNode<E> tmp = first;
  47. ret = 1;
  48. while (tmp.succ != null) {
  49. tmp = tmp.succ;
  50. ret++;
  51. }
  52. return ret;
  53. } else
  54. return 0;
  55.  
  56. }
  57.  
  58. public void insertFirst(E o) {
  59. DLLNode<E> ins = new DLLNode<E>(o, null, first);
  60. if (first == null)
  61. last = ins;
  62. else
  63. first.pred = ins;
  64. first = ins;
  65. }
  66.  
  67. public void insertLast(E o) {
  68. if (first == null)
  69. insertFirst(o);
  70. else {
  71. DLLNode<E> ins = new DLLNode<E>(o, last, null);
  72. last.succ = ins;
  73. last = ins;
  74. }
  75. }
  76.  
  77. public void insertAfter(E o, DLLNode<E> after) {
  78. if (after == last) {
  79. insertLast(o);
  80. return;
  81. }
  82. DLLNode<E> ins = new DLLNode<E>(o, after, after.succ);
  83. after.succ.pred = ins;
  84. after.succ = ins;
  85. }
  86.  
  87. public void insertBefore(E o, DLLNode<E> before) {
  88. if (before == first) {
  89. insertFirst(o);
  90. return;
  91. }
  92. DLLNode<E> ins = new DLLNode<E>(o, before.pred, before);
  93. before.pred.succ = ins;
  94. before.pred = ins;
  95. }
  96.  
  97. public E deleteFirst() {
  98. if (first != null) {
  99. DLLNode<E> tmp = first;
  100. first = first.succ;
  101. if (first != null) first.pred = null;
  102. if (first == null)
  103. last = null;
  104. return tmp.element;
  105. } else
  106. return null;
  107. }
  108.  
  109. public E deleteLast() {
  110. if (first != null) {
  111. if (first.succ == null)
  112. return deleteFirst();
  113. else {
  114. DLLNode<E> tmp = last;
  115. last = last.pred;
  116. last.succ = null;
  117. return tmp.element;
  118. }
  119. }
  120. // else throw Exception
  121. return null;
  122. }
  123.  
  124. @Override
  125. public String toString() {
  126. String ret = new String();
  127. if (first != null) {
  128. DLLNode<E> tmp = first;
  129. ret += tmp + "<->";
  130. while (tmp.succ != null) {
  131. tmp = tmp.succ;
  132. ret += tmp + "<->";
  133. }
  134. } else
  135. ret = "Prazna lista!!!";
  136. return ret;
  137. }
  138.  
  139. public DLLNode<E> getFirst() {
  140. return first;
  141. }
  142.  
  143. public DLLNode<E> getLast() {
  144.  
  145. return last;
  146. }
  147.  
  148. }
  149.  
  150. public class PalindromeDLL {
  151.  
  152. public static int isItPalindrome(DLL<Integer> list){
  153. //Vashiot kod tuka...
  154. }
  155.  
  156. public static void main(String[] args) {
  157. Scanner in = new Scanner(System.in);
  158. int n = in.nextInt();
  159. DLL<Integer> list = new DLL<Integer>();
  160. for (int i = 0; i < n; i++) {
  161. list.insertLast(in.nextInt());
  162. }
  163. in.close();
  164. System.out.println(isItPalindrome(list));
  165. }
  166.  
  167. }
  168.  
  169. sample input:
  170. 5
  171. 1 2 3 1 2
  172. sample output:
  173. -1
  174. ========================1=====================
  175.  
  176.  
  177. ========================2=====================
  178. Војска Problem 2 (0 / 1)
  179. Пред командантот на војската наредени се сите војници и во двојно поврзана листа дадени се нивните ID-a.
  180. На командантот не му се допаѓа како се наредени војниците и решава да одбере два под-интервали од војници и да им ги замени местата,
  181. односно војниците што се наоѓаат во едниот под-интервал ќе ги смести во другиот, и обратно.
  182.  
  183. Влез: Во првиот ред даден е бројот на војници. Во вториот ред дадени се ID-то на секој од војниците.
  184. Во третиот ред дадени се два броеви, ID на првиот војник и ID на последниот војник од првиот интервал.
  185. Во четвртиот ред дадени се два броеви, ID на првиот војник и ID на последниот војник од вториот интервал.
  186.  
  187. Излез: Да се испечати новиот редослед на војниците (т.е. на нивните ID-a)
  188.  
  189. Забелешка 1: Интервалите никогаш нема да се преклопуваат и ќе содржат барем еден војник.
  190. Целата низа ќе содржи најмалку два војника. Забелешка 2: Обратете посебно внимание кога интервалите
  191. се еден до друг и кога некој од интервалите почнува од првиот војник или завршува со последниот војник.
  192.  
  193. Име на класата: DLLVojska
  194.  
  195.  
  196. import java.io.BufferedReader;
  197. import java.io.IOException;
  198. import java.io.InputStreamReader;
  199.  
  200. class DLLNode<E> {
  201. protected E element;
  202. protected DLLNode<E> pred, succ;
  203.  
  204. public DLLNode(E elem, DLLNode<E> pred, DLLNode<E> succ) {
  205. this.element = elem;
  206. this.pred = pred;
  207. this.succ = succ;
  208. }
  209.  
  210. @Override
  211. public String toString() {
  212. return "<-"+element.toString()+"->";
  213. }
  214. }
  215.  
  216.  
  217. class DLL<E> {
  218. private DLLNode<E> first, last;
  219.  
  220. public DLL() {
  221. // Construct an empty SLL
  222. this.first = null;
  223. this.last = null;
  224. }
  225.  
  226. public void deleteList() {
  227. first = null;
  228. last = null;
  229. }
  230.  
  231. public int length() {
  232. int ret;
  233. if (first != null) {
  234. DLLNode<E> tmp = first;
  235. ret = 1;
  236. while (tmp.succ != null) {
  237. tmp = tmp.succ;
  238. ret++;
  239. }
  240. return ret;
  241. } else
  242. return 0;
  243.  
  244. }
  245.  
  246. public void insertFirst(E o) {
  247. DLLNode<E> ins = new DLLNode<E>(o, null, first);
  248. if (first == null)
  249. last = ins;
  250. else
  251. first.pred = ins;
  252. first = ins;
  253. }
  254.  
  255. public void insertLast(E o) {
  256. if (first == null)
  257. insertFirst(o);
  258. else {
  259. DLLNode<E> ins = new DLLNode<E>(o, last, null);
  260. last.succ = ins;
  261. last = ins;
  262. }
  263. }
  264.  
  265. public void insertAfter(E o, DLLNode<E> after) {
  266. if(after==last){
  267. insertLast(o);
  268. return;
  269. }
  270. DLLNode<E> ins = new DLLNode<E>(o, after, after.succ);
  271. after.succ.pred = ins;
  272. after.succ = ins;
  273. }
  274.  
  275. public void insertBefore(E o, DLLNode<E> before) {
  276. if(before == first){
  277. insertFirst(o);
  278. return;
  279. }
  280. DLLNode<E> ins = new DLLNode<E>(o, before.pred, before);
  281. before.pred.succ = ins;
  282. before.pred = ins;
  283. }
  284.  
  285. public E deleteFirst() {
  286. if (first != null) {
  287. DLLNode<E> tmp = first;
  288. first = first.succ;
  289. if (first != null) first.pred = null;
  290. if (first == null)
  291. last = null;
  292. return tmp.element;
  293. } else
  294. return null;
  295. }
  296.  
  297. public E deleteLast() {
  298. if (first != null) {
  299. if (first.succ == null)
  300. return deleteFirst();
  301. else {
  302. DLLNode<E> tmp = last;
  303. last = last.pred;
  304. last.succ = null;
  305. return tmp.element;
  306. }
  307. }
  308. // else throw Exception
  309. return null;
  310. }
  311.  
  312.  
  313. @Override
  314. public String toString() {
  315. String ret = new String();
  316. if (first != null) {
  317. DLLNode<E> tmp = first;
  318. ret += tmp + "<->";
  319. while (tmp.succ != null) {
  320. tmp = tmp.succ;
  321. ret += tmp + "<->";
  322. }
  323. } else
  324. ret = "Prazna lista!!!";
  325. return ret;
  326. }
  327.  
  328. public DLLNode<E> getFirst() {
  329. return first;
  330. }
  331.  
  332. public DLLNode<E> getLast() {
  333.  
  334. return last;
  335. }
  336.  
  337. }
  338.  
  339. public class DLLVojska {
  340.  
  341.  
  342. public static void main(String[] args) throws IOException {
  343. DLL<Integer> lista = new DLL<Integer>();
  344. BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  345. String s = stdin.readLine();
  346. int N = Integer.parseInt(s);
  347. s = stdin.readLine();
  348. String[] ids = s.split(" ");
  349. for (int i = 0; i < N; i++) {
  350. lista.insertLast(Integer.parseInt(ids[i]));
  351. }
  352.  
  353. s = stdin.readLine();
  354. String interval[] = s.split(" ");
  355. int a = Integer.parseInt(interval[0]);
  356. int b = Integer.parseInt(interval[1]);
  357.  
  358. s = stdin.readLine();
  359. interval = s.split(" ");
  360. int c = Integer.parseInt(interval[0]);
  361. int d = Integer.parseInt(interval[1]);
  362.  
  363.  
  364. DLL<Integer> result = vojska(lista, a, b, c, d);
  365.  
  366.  
  367. DLLNode<Integer> node = result.getFirst();
  368. System.out.print(node.element);
  369. node = node.succ;
  370. while(node != null){
  371. System.out.print(" "+node.element);
  372. node = node.succ;
  373. }
  374.  
  375. }
  376.  
  377. private static DLL<Integer> vojska(DLL<Integer> lista, int a, int b, int c, int d) {
  378.  
  379. // Vasiot kod tuka
  380.  
  381. return lista;
  382. }
  383. }
  384.  
  385. Sample input
  386. 10
  387. 1 2 3 4 5 6 7 8 9 10
  388. 1 5
  389. 6 10
  390. Sample output
  391. 6 7 8 9 10 1 2 3 4 5
  392. =================================2===============================
  393.  
  394.  
  395. =================================3===============================
  396. Листа од листи Problem 3 (0 / 0)
  397. Дадена е двојно поврзана листа од двојно поврзани листи.
  398. Да се најде сума на секоја од подлистите, а потоа производ на овие суми
  399.  
  400. Влез: Број N кој кажува колку листи има Број М кој кажува колку елементи има во секоја листа
  401. Во следните М линии се податоците 1<=A<=1000за секоја од листите
  402.  
  403. Излез: Еден број што е производот на сумите од низите. Со седум децимали.
  404.  
  405. Пример влез: 3 4 1 2 3 4 2 3 4 5 6 7 8 9
  406.  
  407. Излез: 1400
  408.  
  409.  
  410. import java.util.Scanner;
  411.  
  412. class DLLNode<E> {
  413. protected E element;
  414. protected DLLNode<E> pred, succ;
  415.  
  416. public DLLNode(E elem, DLLNode<E> pred, DLLNode<E> succ) {
  417. this.element = elem;
  418. this.pred = pred;
  419. this.succ = succ;
  420. }
  421.  
  422. @Override
  423. public String toString() {
  424. return "<-" + element.toString() + "->";
  425. }
  426. }
  427.  
  428. class DLL<E> {
  429. private DLLNode<E> first, last;
  430.  
  431. public DLL() {
  432. // Construct an empty SLL
  433. this.first = null;
  434. this.last = null;
  435. }
  436.  
  437. public void deleteList() {
  438. first = null;
  439. last = null;
  440. }
  441.  
  442. public int length() {
  443. int ret;
  444. if (first != null) {
  445. DLLNode<E> tmp = first;
  446. ret = 1;
  447. while (tmp.succ != null) {
  448. tmp = tmp.succ;
  449. ret++;
  450. }
  451. return ret;
  452. } else
  453. return 0;
  454.  
  455. }
  456.  
  457. public void insertFirst(E o) {
  458. DLLNode<E> ins = new DLLNode<E>(o, null, first);
  459. if (first == null)
  460. last = ins;
  461. else
  462. first.pred = ins;
  463. first = ins;
  464. }
  465.  
  466. public void insertLast(E o) {
  467. if (first == null)
  468. insertFirst(o);
  469. else {
  470. DLLNode<E> ins = new DLLNode<E>(o, last, null);
  471. last.succ = ins;
  472. last = ins;
  473. }
  474. }
  475.  
  476. public void insertAfter(E o, DLLNode<E> after) {
  477. if (after == last) {
  478. insertLast(o);
  479. return;
  480. }
  481. DLLNode<E> ins = new DLLNode<E>(o, after, after.succ);
  482. after.succ.pred = ins;
  483. after.succ = ins;
  484. }
  485.  
  486. public void insertBefore(E o, DLLNode<E> before) {
  487. if (before == first) {
  488. insertFirst(o);
  489. return;
  490. }
  491. DLLNode<E> ins = new DLLNode<E>(o, before.pred, before);
  492. before.pred.succ = ins;
  493. before.pred = ins;
  494. }
  495.  
  496. public E deleteFirst() {
  497. if (first != null) {
  498. DLLNode<E> tmp = first;
  499. first = first.succ;
  500. if (first != null) first.pred = null;
  501. if (first == null)
  502. last = null;
  503. return tmp.element;
  504. } else
  505. return null;
  506. }
  507.  
  508. public E deleteLast() {
  509. if (first != null) {
  510. if (first.succ == null)
  511. return deleteFirst();
  512. else {
  513. DLLNode<E> tmp = last;
  514. last = last.pred;
  515. last.succ = null;
  516. return tmp.element;
  517. }
  518. }
  519. // else throw Exception
  520. return null;
  521. }
  522.  
  523. @Override
  524. public String toString() {
  525. String ret = new String();
  526. if (first != null) {
  527. DLLNode<E> tmp = first;
  528. ret += tmp + "<->";
  529. while (tmp.succ != null) {
  530. tmp = tmp.succ;
  531. ret += tmp + "<->";
  532. }
  533. } else
  534. ret = "Prazna lista!!!";
  535. return ret;
  536. }
  537.  
  538. public DLLNode<E> getFirst() {
  539. return first;
  540. }
  541.  
  542. public DLLNode<E> getLast() {
  543.  
  544. return last;
  545. }
  546.  
  547. }
  548.  
  549. public class ListaOdListi {
  550.  
  551. public static long findMagicNumber(DLL<DLL<Integer>> list) {
  552. //Vashiot kod tuka...
  553. }
  554.  
  555. public static void main(String[] args) {
  556. Scanner in = new Scanner(System.in);
  557. int n = in.nextInt();
  558. int m = in.nextInt();
  559. DLL<DLL<Integer>> list = new DLL<DLL<Integer>>();
  560. for (int i = 0; i < n; i++) {
  561. DLL<Integer> tmp = new DLL<Integer>();
  562. for (int j = 0; j < m; j++) {
  563. tmp.insertLast(in.nextInt());
  564. }
  565. list.insertLast(tmp);
  566. }
  567. in.close();
  568. System.out.println(findMagicNumber(list));
  569. }
  570.  
  571. }
  572.  
  573. Sample input
  574. 4
  575. 4
  576. 6 13 16 7
  577. 7 23 9 11
  578. 8 0 8 19
  579. 6 6 9 11
  580.  
  581. Sample output
  582. 2352000
  583.  
  584. ==============================3===============================
  585.  
  586. ==============================4===============================
  587. Опсег Problem 4 (0 / 0)
  588. Дадена е равенката: x2+s(x)+200·x=N каде што x, N се природни броеви,
  589. а s(x) е функција која што го дава збирот на цифри на бројот x.
  590. Даден е и бројот N и два природни броеви A и B, каде што A≤B и A, B≤1,000,000,000.
  591. Потребно е да проверите дали постои природен број x во опсегот [A, B] така што е задоволена равенката,
  592. и ако постои тогаш треба да се врати како резултат.
  593. Ако таков природен број x во опсегот [A, B] што ја задоволува равенката не постои, тогаш се враќа -1.
  594.  
  595. Име на класата: Range
  596.  
  597. import java.io.BufferedReader;
  598. import java.io.InputStreamReader;
  599. import java.util.StringTokenizer;
  600.  
  601. public class Range {
  602.  
  603. static int proveri(int N, int A, int B) {
  604. // Vasiot kod tuka
  605. }
  606.  
  607. public static void main(String[] args) throws Exception {
  608. int i,j,k;
  609.  
  610. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  611.  
  612. int N = Long.parseLong(br.readLine());
  613.  
  614. StringTokenizer st = new StringTokenizer(br.readLine());
  615. int A = Long.parseLong(st.nextToken());
  616. int B = Long.parseLong(st.nextToken());
  617.  
  618. int res = proveri(N, A, B);
  619. System.out.println(res);
  620.  
  621. br.close();
  622.  
  623. }
  624.  
  625. }
  626.  
  627. Sample input
  628. 1456
  629. 10 80
  630. Sample output
  631. -1
  632. =================================4============================
  633.  
  634. =================================5============================
  635. Автобус Problem 5 (0 / 0)
  636. На автобуската станица во ФинТаун имало N возрасни и M деца кои што сакале да патуваат заедно за соседниот град МинТаун.
  637. Цената на еден билет е 100 денари. Ако некој возрасен сака да патува со k деца,
  638. треба да плати еден билет за него и k-1 билети за децата (за едно дете не мора да плаќа билет).
  639. Исто така, возрасен може да се вози и сам, во тој случај ќе си плати еден билет за него.
  640. Дополнително знаеме дека децата не можат да се возат без да се придружени од некој возрасен.
  641. Во првиот ред од влезот е даден бројот N. Во вториот ред е даден бројот M.
  642. Потребно е да пресметате колкав е минималниот и максималниот број на денари што може да ги платат патниците за билети и да ги испечатите во две линии.
  643. Во автобусот ќе има најмалку еден возрасен.
  644.  
  645. Име на класата: Bus
  646.  
  647. import java.io.BufferedReader;
  648. import java.io.InputStreamReader;
  649.  
  650. public class Bus {
  651.  
  652. public static void main(String[] args) throws Exception {
  653. int i,j,k;
  654.  
  655. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  656.  
  657. int N = Integer.parseInt(br.readLine());
  658. int M = Integer.parseInt(br.readLine());
  659.  
  660. br.close();
  661.  
  662. // Vasiot kod tuka
  663.  
  664.  
  665.  
  666. }
  667.  
  668. }
  669.  
  670. Sample input
  671. 4
  672. 10
  673.  
  674. Sample output
  675. 1000
  676. 1300
  677. =========================5======================
  678.  
  679. =========================6======================
  680. Најдолга опаѓачка секвенца - Java Problem 6 (0 / 0)
  681. Најди ја најдолгата опаѓачка секвенца во една низа. Броевите во секвенцата не мора да се наоѓаат на последователни индекси во низата.
  682.  
  683. Име на класата: LDS
  684.  
  685. import java.util.Scanner;
  686.  
  687.  
  688. public class LDS {
  689.  
  690.  
  691. private static int najdolgaOpagackaSekvenca(int[] a) {
  692.  
  693. // Vasiot kod tuka
  694.  
  695. }
  696.  
  697. public static void main(String[] args) {
  698. Scanner stdin = new Scanner(System.in);
  699.  
  700. int n = stdin.nextInt();
  701. int a[] = new int[n];
  702. for (int i = 0; i < a.length; i++) {
  703. a[i] = stdin.nextInt();
  704. }
  705. System.out.println(najdolgaOpagackaSekvenca(a));
  706. }
  707.  
  708.  
  709. }
  710.  
  711.  
  712. Sample input
  713. 8
  714. 1 2 3 4 5 6 7 8
  715.  
  716. Sample output
  717. 1
  718. ==========================6==============================
  719.  
  720. ==========================7==============================
  721. Букви Problem 7 (0 / 0)
  722. Дадена е низа од големи букви, во која буквата S се појавува парен број пати.
  723. После секоја буква S буквата Т се појавува еднаш или повеќе пати.
  724. Користејќи стек да се одреди дали после секоја буква S (до следната буква S), буквата Т се појавува ист број на пати.
  725. На првиот ред од влезот се чита низа од карактери (стринг),
  726. на излез се печати 1 доколку буквата Т се појавува ист број на пати после секоја S,
  727. и нула доколку овој услов не е исполнет.
  728.  
  729. Име на класата: StackBukvi
  730.  
  731. import java.io.IOException;
  732. import java.util.Scanner;
  733.  
  734. interface Stack<E> {
  735.  
  736. // Elementi na stekot se objekti od proizvolen tip.
  737.  
  738. // Metodi za pristap:
  739.  
  740. public boolean isEmpty ();
  741. // Vrakja true ako i samo ako stekot e prazen.
  742.  
  743. public E peek ();
  744. // Go vrakja elementot na vrvot od stekot.
  745.  
  746. // Metodi za transformacija:
  747.  
  748. public void clear ();
  749. // Go prazni stekot.
  750.  
  751. public void push (E x);
  752. // Go dodava x na vrvot na stekot.
  753.  
  754. public E pop ();
  755. // Go otstranuva i vrakja elementot shto e na vrvot na stekot.
  756. }
  757.  
  758. class ArrayStack<E> implements Stack<E> {
  759. private E[] elems;
  760. private int depth;
  761.  
  762. @SuppressWarnings("unchecked")
  763. public ArrayStack (int maxDepth) {
  764. // Konstrukcija na nov, prazen stek.
  765. elems = (E[]) new Object[maxDepth];
  766. depth = 0;
  767. }
  768.  
  769.  
  770. public boolean isEmpty () {
  771. // Vrakja true ako i samo ako stekot e prazen.
  772. return (depth == 0);
  773. }
  774.  
  775.  
  776. public E peek () {
  777. // Go vrakja elementot na vrvot od stekot.
  778. if (depth == 0)
  779. throw new NoSuchElementException();
  780. return elems[depth-1];
  781. }
  782.  
  783.  
  784. public void clear () {
  785. // Go prazni stekot.
  786. for (int i = 0; i < depth; i++) elems[i] = null;
  787. depth = 0;
  788. }
  789.  
  790.  
  791. public void push (E x) {
  792. // Go dodava x na vrvot na stekot.
  793. elems[depth++] = x;
  794. }
  795.  
  796.  
  797. public E pop () {
  798. // Go otstranuva i vrakja elementot shto e na vrvot na stekot.
  799. if (depth == 0)
  800. throw new NoSuchElementException();
  801. E topmost = elems[--depth];
  802. elems[depth] = null;
  803. return topmost;
  804. }
  805. }
  806.  
  807. public class StackBukvi {
  808. static int proveri_t_posle_s(char [] St)
  809. {
  810. // Vasiot kod tuka
  811. }
  812.  
  813. public static void main(String[] args) throws IOException {
  814. char [] niza=new char[100];
  815.  
  816. Scanner f=new Scanner(System.in);
  817. String st=f.next();
  818. niza=st.toCharArray();
  819.  
  820. int rez= proveri_t_posle_s(niza);
  821. System.out.println(rez);
  822. }
  823.  
  824.  
  825. }
  826.  
  827. Sample input
  828. ASGTBST
  829.  
  830. Sample output
  831. 1
  832. =============================7=========================
  833.  
  834. =============================8=========================
  835. Математички израз Problem 8 (0 / 0)
  836. Да се напише алгоритам кој ќе пресметува (евалуира) математички израз составен од броеви
  837. и операциите за собирање (+) и множење (*).
  838.  
  839. Забелешка: Операцијата множење има предност пред операцијата собирање.
  840.  
  841. Име на класата: ExpressionEvaluator
  842.  
  843. import java.io.BufferedReader;
  844. import java.io.IOException;
  845. import java.io.InputStreamReader;
  846. import java.util.Stack;
  847.  
  848. public class ExpressionEvaluator {
  849.  
  850. public static int evaluateExpression(String expression){
  851. // Vasiot kod tuka
  852.  
  853. }
  854. public static void main(String[] args) throws IOException {
  855. BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
  856. System.out.println(evaluateExpression(input.readLine()));
  857. }
  858.  
  859. }
  860.  
  861. Sample input
  862. 2+2*2*2*2*2*2+2*2
  863.  
  864. Sample output
  865. 70
  866.  
  867. ===========================8=========================
  868.  
  869. ===========================9=========================
  870. Трик со карти Problem 9 (0 / 0)
  871. Перо прави трик со карти. Тој има шпил од 51-на карта
  872. (некој некогаш не му вратил една) од којшто ви дозволува да влечете карта.
  873. Тој, за трикот да биде веродостоен, не ја знае картата, но знае на која позиција се наоѓа.
  874. Мааната на Перо е тоа што тој не знае регуларно да измеша карти, туку ги зема првите седум карти,
  875. им им го превртува редоследот (пр. од 1 2 3 4 5 6 7 ги реди во 7 6 5 4 3 2 1),
  876. потоа зема една карта од превртените и една од врвот од шпилот и го става на крајот од шпилот,
  877. така се додека не ги потроши сите седум карти. Со тоа остварува едно мешање на шпил.
  878. Ваша задача е, да изработите симулцаија на ваквото мешање, такашто за дадена N-та карта т.ш. 1<=N<=51,
  879. вие ќе му изброите колку вакви мешања треба тој да направи за на врв на шпилот да дојде извлечената карта.
  880.  
  881. Име на класата: card_trick
  882.  
  883. import java.io.BufferedReader;
  884. import java.io.IOException;
  885. import java.io.InputStreamReader;
  886. import java.util.LinkedList;
  887. import java.util.Queue;
  888. import java.util.Stack;
  889.  
  890.  
  891. public class card_trick {
  892. public static int count(int N){
  893. // Vasiot kod tuka
  894.  
  895. }
  896.  
  897. public static void main(String[] args) throws NumberFormatException, IOException {
  898. BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
  899. System.out.println(count(Integer.parseInt(br.readLine())));
  900. }
  901.  
  902. }
  903.  
  904. Sample input
  905. 15
  906. Sample output
  907. 1
  908. ======================9======================
  909.  
  910. =====================10======================
  911. Компанија Problem 10 (0 / 0)
  912. Податоците за плати на вработените во една компанија привремено се чуваат во еднострано поврзана листа.
  913. Во секој јазол од листата се чува единствен ID на вработениот и неговата плата.
  914. Потребно е да се отстранат сите вработени со помали плати од даден износ,
  915. а остатокот да се прикажат во опаѓачки редослед во однос на ID-то.
  916. Во првиот ред од влезот е даден бројот на вработени,
  917. потоа наизменично се дадени ID и плата за секој од вработените
  918. и во последниот ред е износот во однос на кој ќе се отстрануваат вработените.
  919. На излез се печати листа (ID, плата) во опаѓачки редослед според ID на секој од вработените.
  920.  
  921. Доколку нема вработени со плата поголема од дадената да се испечати: nema
  922.  
  923. Име на класата: SLLKompanija
  924.  
  925. import java.io.BufferedReader;
  926. import java.io.IOException;
  927. import java.io.InputStreamReader;
  928.  
  929.  
  930.  
  931. class SLLNode {
  932. protected int id;
  933. protected int plata;
  934. protected SLLNode succ;
  935.  
  936. public SLLNode(int id,int plata, SLLNode succ) {
  937. this.id = id;
  938. this.plata=plata;
  939. this.succ = succ;
  940. }
  941.  
  942.  
  943. }
  944.  
  945. class SLL {
  946. private SLLNode first;
  947.  
  948. public SLL() {
  949. // Construct an empty SLL
  950. this.first = null;
  951. }
  952.  
  953. public void deleteList() {
  954. first = null;
  955. }
  956.  
  957. public int length() {
  958. int ret;
  959. if (first != null) {
  960. SLLNode tmp = first;
  961. ret = 1;
  962. while (tmp.succ != null) {
  963. tmp = tmp.succ;
  964. ret++;
  965. }
  966. return ret;
  967. } else
  968. return 0;
  969.  
  970. }
  971.  
  972.  
  973. public void insertFirst(int id, int plata) {
  974. SLLNode ins = new SLLNode(id,plata, first);
  975. first = ins;
  976. }
  977.  
  978. public void insertLast(int id,int plata) {
  979. if (first != null) {
  980. SLLNode tmp = first;
  981. while (tmp.succ != null)
  982. tmp = tmp.succ;
  983. SLLNode ins = new SLLNode(id, plata, null);
  984. tmp.succ = ins;
  985. } else {
  986. insertFirst(id,plata);
  987. }
  988. }
  989.  
  990. public SLLNode getFirst() {
  991. return first;
  992. }
  993.  
  994.  
  995. public SLL brisi_pomali_od(int iznos) {
  996. // Vasiot kod tuka
  997. }
  998.  
  999. public SLL sortiraj_opagacki() {
  1000. // Vasiot kod tuka
  1001.  
  1002. }
  1003. public void pecati (SLL lista)
  1004. {
  1005. SLLNode p=lista.first;
  1006. while(p!=null)
  1007. {
  1008. System.out.println(p.id+","+p.plata);
  1009. p=p.succ;
  1010. }
  1011. }
  1012.  
  1013. }
  1014. public class SLLKompanija {
  1015. public static void main(String[] args) throws IOException {
  1016.  
  1017. SLL lista1 = new SLL();
  1018. BufferedReader stdin = new BufferedReader(new InputStreamReader(
  1019. System.in));
  1020. String s = stdin.readLine();
  1021. int N = Integer.parseInt(s);
  1022.  
  1023. for (int i = 0; i < N; i++) {
  1024. s=stdin.readLine();
  1025. String s1=stdin.readLine();
  1026. lista1.insertLast(Integer.parseInt(s),Integer.parseInt(s1));
  1027. }
  1028. s = stdin.readLine();
  1029.  
  1030. lista1=lista1.brisi_pomali_od(Integer.parseInt(s));
  1031. if(lista1!=null)
  1032. {
  1033. lista1=lista1.sortiraj_opagacki();
  1034. lista1.pecati(lista1);
  1035. }
  1036.  
  1037. }
  1038. }
  1039.  
  1040. Sample input
  1041. 3
  1042. 1111
  1043. 19000
  1044. 2222
  1045. 22000
  1046. 1155
  1047. 60000
  1048. 30000
  1049. Sample output
  1050. 1155 60000
  1051. ==========================10===========================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement