Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.93 KB | None | 0 0
  1. package matura2018stara;
  2.  
  3. import java.io.IOException;
  4. import java.nio.file.Files;
  5. import java.nio.file.Paths;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. class Movie {
  10. public String id;
  11. public int year;
  12. public String title;
  13.  
  14. public Movie(String string) {
  15. String[] split = string.split("\\t+");
  16. this.id = split[0];
  17. this.year = Integer.parseInt(split[1]);
  18. this.title = split[2];
  19. }
  20. }
  21.  
  22. class Actor {
  23. public String id;
  24. public String name;
  25. public String surname;
  26. public String birthdayDate;
  27. public String country;
  28.  
  29. public Actor(String string) {
  30. String[] split = string.split("\\t+");
  31. this.id = split[0];
  32. this.name = split[1];
  33. this.surname = split[2];
  34. this.birthdayDate = split[3];
  35. this.country = split[4];
  36. }
  37. }
  38.  
  39. class Prize {
  40. public String idMovie;
  41. public String idActor;
  42. public String category;
  43.  
  44. public Prize(String string) {
  45. String[] split = string.split("\\t+");
  46. this.idMovie = split[0];
  47. this.idActor = split[1];
  48. this.category = split[2];
  49. }
  50. }
  51.  
  52. public class Matura2019Stara {
  53.  
  54. static List<ElementDzialki> dzialki;
  55. static List<Movie> movies;
  56. static List<Actor> actors;
  57. static List<Prize> prizes;
  58.  
  59. public enum ElementDzialki {
  60. Empty, Grass, Obstacle;
  61. }
  62.  
  63. static void parseMovies() {
  64. movies = new ArrayList<Movie>();
  65. try {
  66. List<String> lines = Files.readAllLines(Paths.get("filmy.txt"));
  67.  
  68. for (int i = 1; i < lines.size(); i++) {
  69. movies.add(new Movie(lines.get(i)));
  70. }
  71. } catch (IOException e) {
  72. e.printStackTrace();
  73. }
  74. }
  75.  
  76. static void parseActors() {
  77. actors = new ArrayList<Actor>();
  78. try {
  79. List<String> lines = Files.readAllLines(Paths.get("aktorzy.txt"));
  80.  
  81. for (int i = 1; i < lines.size(); i++) {
  82. actors.add(new Actor(lines.get(i)));
  83. }
  84. } catch (IOException e) {
  85. e.printStackTrace();
  86. }
  87. }
  88.  
  89. static void parsePrize() {
  90. prizes = new ArrayList<Prize>();
  91. try {
  92. List<String> lines = Files.readAllLines(Paths.get("nagrody.txt"));
  93.  
  94. for (int i = 1; i < lines.size(); i++) {
  95. prizes.add(new Prize(lines.get(i)));
  96. }
  97. } catch (IOException e) {
  98. e.printStackTrace();
  99. }
  100. }
  101.  
  102. static void parseZad5() {
  103. parseMovies();
  104. parseActors();
  105. parsePrize();
  106. }
  107.  
  108. static List<ElementDzialki> parseZad4() {
  109.  
  110. dzialki = new ArrayList<ElementDzialki>();
  111. try {
  112. List<String> lines = Files.readAllLines(Paths.get("dzialki.txt"));
  113.  
  114. for (String line : lines) {
  115. for (int i = 0; i < line.length(); i++) {
  116. char c = line.charAt(i);
  117.  
  118. if (c == '.')
  119. dzialki.add(ElementDzialki.Empty);
  120. else if (c == '*')
  121. dzialki.add(ElementDzialki.Grass);
  122. else if (c == 'X')
  123. dzialki.add(ElementDzialki.Obstacle);
  124. }
  125. }
  126. } catch (IOException e) {
  127. e.printStackTrace();
  128. }
  129.  
  130. return dzialki;
  131. }
  132.  
  133. static ElementDzialki getElement(int numerDzialki, int x, int y) {
  134. return dzialki.get(numerDzialki * 30 * 30 + y * 30 + x);
  135. }
  136.  
  137. static int getIloscDzialek() {
  138. return dzialki.size() / (30 * 30);
  139. }
  140.  
  141. static void zad43() {
  142. System.out.print("4.3 ");
  143.  
  144. List<Integer> bokList = new ArrayList<Integer>();
  145. int bestBok = 0;
  146.  
  147. for (int i = 0; i < getIloscDzialek(); i++) {
  148.  
  149. int size = 1;
  150. while (size < 30) {
  151. boolean failed = false;
  152.  
  153. for (int x = 0; x < size; ++x) {
  154. for (int y = 0; y < size; ++y) {
  155. if (getElement(i, x, y) == ElementDzialki.Obstacle) {
  156. failed = true;
  157. break;
  158. }
  159. }
  160.  
  161. if (failed) {
  162. break;
  163. }
  164. }
  165.  
  166. if (failed) {
  167. size--;
  168. break;
  169. }
  170.  
  171. size++;
  172. }
  173.  
  174. if (size > bestBok) {
  175. bestBok = size;
  176. bokList.clear();
  177. bokList.add(i);
  178. } else if (size == bestBok) {
  179. bokList.add(i);
  180. }
  181. }
  182.  
  183. System.out.println("Bok kwadratu " + bestBok);
  184. System.out.print("Działki ");
  185. for (int i = 0; i < bokList.size(); ++i) {
  186. System.out.print((bokList.get(i) + 1) + " ");
  187. }
  188. System.out.println();
  189.  
  190. }
  191.  
  192. static void zad42() {
  193. System.out.print("4.2 ");
  194. for (int h = 0; h < getIloscDzialek(); h++) {
  195. for (int i = 0; i < getIloscDzialek(); i++) {
  196. if (i == h) {
  197. continue;
  198. }
  199. boolean isSame = true;
  200. for (int j = 0; j < 30; j++) {
  201. for (int k = 0; k < 30; k++) {
  202. if (getElement(i, j, k) != getElement(h, 30 - 1 - j, 30 - 1 - k)) {
  203. isSame = false;
  204. break;
  205. }
  206. }
  207. }
  208. if (isSame) {
  209. System.out.print(i + 1 + " ");
  210. }
  211. }
  212. }
  213. System.out.println();
  214. }
  215.  
  216. static void zad41() {
  217. int odp = 0;
  218. for (int i = 0; i < getIloscDzialek(); i++) {
  219. int grass = 0;
  220. for (int j = 0; j < 30; j++) {
  221. for (int k = 0; k < 30; k++) {
  222. if (getElement(i, j, k) == ElementDzialki.Grass)
  223. grass++;
  224. }
  225. }
  226. if ((float) grass / (float) (30 * 30) >= 0.7f) {
  227. odp++;
  228. }
  229. }
  230. System.out.println("4.1 " + odp);
  231. }
  232.  
  233. static void zad4() {
  234. parseZad4();
  235. zad41();
  236. zad42();
  237. zad43();
  238. }
  239.  
  240. static Actor getActor(String actorId) {
  241. for (Actor actor : actors) {
  242. if (actor.id.equals(actorId))
  243. return actor;
  244. }
  245. return null;
  246. }
  247.  
  248. static void zad51() {
  249. List<Actor> actors = new ArrayList<Actor>();
  250. for (Prize prize : prizes) {
  251. Actor actor = getActor(prize.idActor);
  252.  
  253. boolean isFound = false;
  254. for (Actor actorInList : actors) {
  255. if (actorInList == actor) {
  256. isFound = true;
  257. break;
  258. }
  259. }
  260.  
  261. if (!isFound) {
  262. actors.add(actor);
  263. }
  264. }
  265.  
  266. List<String> countries = new ArrayList<String>();
  267. for (Actor actor : actors) {
  268. boolean isFound = false;
  269.  
  270. for (String countryInList: countries) {
  271. if (countryInList == actor.country) {
  272. isFound = true;
  273. break;
  274. }
  275. }
  276.  
  277. if (!isFound) {
  278. countries.add(actor.country);
  279. }
  280. }
  281. }
  282.  
  283. static void zad5() {
  284. parseZad5();
  285. zad51();
  286. }
  287.  
  288. public static void main(String[] args) {
  289. zad4();
  290. zad5();
  291. }
  292. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement