Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pal;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- public class Main {
- static public int countBelts; // belts are labeled 0:countBelts-1
- static public int countSegment; //labeled by chars a-z, Segment in 1 disk
- static public int countDisk; // count disks in one belt
- static public String[][] belts;
- static public int[][] labels; //labelovani segmentu, ke ktery skupine
- static public int[][] labelsPrint;
- //na i,0 pocet indexu pasku, 0 - nebudeme prochazet pri vypisu
- //pasky se stejnym labelem do jednoho indexu
- public static void main(String[] args) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String[] in = br.readLine().split(" ");
- countBelts = Integer.parseInt(in[0]);
- countSegment = Integer.parseInt(in[1]);
- countDisk = Integer.parseInt(in[2]);
- belts = new String[countBelts][countDisk + 1];
- labels = new int[countBelts][countDisk + 1];
- //TODO asi vymyslet lepsi zpusob ukladani
- //mozna dodelat for, kde kazdej
- //pasek ma svuj label only
- //na i0 pocet oblabelovanych
- labelsPrint = new int[countBelts][countDisk + 1];
- //TODO: odebrat label pasku, shoduje se s indexem pole totiz
- for (int i = 0; i < countBelts; i++) {
- in = br.readLine().split(" ");
- belts[i] = in;
- }
- ///TODO labelovani, porovnani funguje
- //kazdej pasek s kazdym
- int countLabel;
- for (int i = 0; i < countBelts; i++) {//ale az s tim dalsim
- for (int j = i + 1; j < countBelts; j++) { //kazdej segment pasku i s kazdym segmentem pasku j
- for (int k = 1; k < countDisk + 1; k++) {
- for (int l = k; l < countDisk + 1; l++) { //neporovnavame jiz porovnane znova
- String SegmentA = belts[i][k];
- String SegmentB = belts[j][l];
- //segmentB je rotaci segmentu A nebo zrcadlovou rotaci
- if (checkRotation(SegmentA, SegmentB) || checkRotation(SegmentA, flip(SegmentB))) {
- }
- }
- }
- }
- }
- for (int i = 0; i < countBelts; i++) {//ale az s tim dalsim
- for (int j = 0; j < countDisk + 1; j++) {
- System.out.print(labels[i][j]);
- }
- System.out.println("");
- }
- }
- public static boolean checkRotation(String s1, String s2) {
- //vrati true, kdyz string1 obsahuje string 2
- if ((s1.length() == s2.length()) && ((s1 + s1).contains(s2))) {
- return true;
- } else {
- return false;
- }
- }
- //zrcadleni
- public static String flip(String s1) {
- StringBuilder str = new StringBuilder(s1);
- return str.reverse().toString();
- }
- public static void makeSameLabelsTogether() {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement