Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package matura2018stara;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Paths;
- import java.util.ArrayList;
- import java.util.List;
- class Movie {
- public String id;
- public int year;
- public String title;
- public Movie(String string) {
- String[] split = string.split("\\t+");
- this.id = split[0];
- this.year = Integer.parseInt(split[1]);
- this.title = split[2];
- }
- }
- class Actor {
- public String id;
- public String name;
- public String surname;
- public String birthdayDate;
- public String country;
- public Actor(String string) {
- String[] split = string.split("\\t+");
- this.id = split[0];
- this.name = split[1];
- this.surname = split[2];
- this.birthdayDate = split[3];
- this.country = split[4];
- }
- }
- class Prize {
- public String idMovie;
- public String idActor;
- public String category;
- public Prize(String string) {
- String[] split = string.split("\\t+");
- this.idMovie = split[0];
- this.idActor = split[1];
- this.category = split[2];
- }
- }
- public class Matura2019Stara {
- static List<ElementDzialki> dzialki;
- static List<Movie> movies;
- static List<Actor> actors;
- static List<Prize> prizes;
- public enum ElementDzialki {
- Empty, Grass, Obstacle;
- }
- static void parseMovies() {
- movies = new ArrayList<Movie>();
- try {
- List<String> lines = Files.readAllLines(Paths.get("filmy.txt"));
- for (int i = 1; i < lines.size(); i++) {
- movies.add(new Movie(lines.get(i)));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- static void parseActors() {
- actors = new ArrayList<Actor>();
- try {
- List<String> lines = Files.readAllLines(Paths.get("aktorzy.txt"));
- for (int i = 1; i < lines.size(); i++) {
- actors.add(new Actor(lines.get(i)));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- static void parsePrize() {
- prizes = new ArrayList<Prize>();
- try {
- List<String> lines = Files.readAllLines(Paths.get("nagrody.txt"));
- for (int i = 1; i < lines.size(); i++) {
- prizes.add(new Prize(lines.get(i)));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- static void parseZad5() {
- parseMovies();
- parseActors();
- parsePrize();
- }
- static List<ElementDzialki> parseZad4() {
- dzialki = new ArrayList<ElementDzialki>();
- try {
- List<String> lines = Files.readAllLines(Paths.get("dzialki.txt"));
- for (String line : lines) {
- for (int i = 0; i < line.length(); i++) {
- char c = line.charAt(i);
- if (c == '.')
- dzialki.add(ElementDzialki.Empty);
- else if (c == '*')
- dzialki.add(ElementDzialki.Grass);
- else if (c == 'X')
- dzialki.add(ElementDzialki.Obstacle);
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return dzialki;
- }
- static ElementDzialki getElement(int numerDzialki, int x, int y) {
- return dzialki.get(numerDzialki * 30 * 30 + y * 30 + x);
- }
- static int getIloscDzialek() {
- return dzialki.size() / (30 * 30);
- }
- static void zad43() {
- System.out.print("4.3 ");
- List<Integer> bokList = new ArrayList<Integer>();
- int bestBok = 0;
- for (int i = 0; i < getIloscDzialek(); i++) {
- int size = 1;
- while (size < 30) {
- boolean failed = false;
- for (int x = 0; x < size; ++x) {
- for (int y = 0; y < size; ++y) {
- if (getElement(i, x, y) == ElementDzialki.Obstacle) {
- failed = true;
- break;
- }
- }
- if (failed) {
- break;
- }
- }
- if (failed) {
- size--;
- break;
- }
- size++;
- }
- if (size > bestBok) {
- bestBok = size;
- bokList.clear();
- bokList.add(i);
- } else if (size == bestBok) {
- bokList.add(i);
- }
- }
- System.out.println("Bok kwadratu " + bestBok);
- System.out.print("Działki ");
- for (int i = 0; i < bokList.size(); ++i) {
- System.out.print((bokList.get(i) + 1) + " ");
- }
- System.out.println();
- }
- static void zad42() {
- System.out.print("4.2 ");
- for (int h = 0; h < getIloscDzialek(); h++) {
- for (int i = 0; i < getIloscDzialek(); i++) {
- if (i == h) {
- continue;
- }
- boolean isSame = true;
- for (int j = 0; j < 30; j++) {
- for (int k = 0; k < 30; k++) {
- if (getElement(i, j, k) != getElement(h, 30 - 1 - j, 30 - 1 - k)) {
- isSame = false;
- break;
- }
- }
- }
- if (isSame) {
- System.out.print(i + 1 + " ");
- }
- }
- }
- System.out.println();
- }
- static void zad41() {
- int odp = 0;
- for (int i = 0; i < getIloscDzialek(); i++) {
- int grass = 0;
- for (int j = 0; j < 30; j++) {
- for (int k = 0; k < 30; k++) {
- if (getElement(i, j, k) == ElementDzialki.Grass)
- grass++;
- }
- }
- if ((float) grass / (float) (30 * 30) >= 0.7f) {
- odp++;
- }
- }
- System.out.println("4.1 " + odp);
- }
- static void zad4() {
- parseZad4();
- zad41();
- zad42();
- zad43();
- }
- static Actor getActor(String actorId) {
- for (Actor actor : actors) {
- if (actor.id.equals(actorId))
- return actor;
- }
- return null;
- }
- static void zad51() {
- List<Actor> actors = new ArrayList<Actor>();
- for (Prize prize : prizes) {
- Actor actor = getActor(prize.idActor);
- boolean isFound = false;
- for (Actor actorInList : actors) {
- if (actorInList == actor) {
- isFound = true;
- break;
- }
- }
- if (!isFound) {
- actors.add(actor);
- }
- }
- List<String> countries = new ArrayList<String>();
- for (Actor actor : actors) {
- boolean isFound = false;
- for (String countryInList: countries) {
- if (countryInList == actor.country) {
- isFound = true;
- break;
- }
- }
- if (!isFound) {
- countries.add(actor.country);
- }
- }
- }
- static void zad5() {
- parseZad5();
- zad51();
- }
- public static void main(String[] args) {
- zad4();
- zad5();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement