Advertisement
Alisator

java4_15-11

Nov 15th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.03 KB | None | 0 0
  1. package pal;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6.  
  7. public class Main {
  8.  
  9.     static public int countBelts; // belts are labeled 0:countBelts-1
  10.     static public int countSegment; //labeled by chars a-z, Segment in 1 disk
  11.     static public int countDisk; // count disks in one belt
  12.     static public String[][] belts;
  13.     static public int[][] labels; //labelovani segmentu, ke ktery skupine
  14.     static public int[][] labelsPrint;
  15. //na i,0 pocet indexu pasku, 0 - nebudeme prochazet pri vypisu    
  16. //pasky se stejnym labelem do jednoho indexu
  17.  
  18.     public static void main(String[] args) throws IOException {
  19.  
  20.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  21.         String[] in = br.readLine().split(" ");
  22.         countBelts = Integer.parseInt(in[0]);
  23.         countSegment = Integer.parseInt(in[1]);
  24.         countDisk = Integer.parseInt(in[2]);
  25.         belts = new String[countBelts][countDisk + 1];
  26.         labels = new int[countBelts][countDisk + 1];
  27.         //TODO asi vymyslet lepsi zpusob ukladani
  28.         //mozna dodelat for, kde kazdej
  29.         //pasek ma svuj label only
  30.         //na i0 pocet oblabelovanych
  31.         labelsPrint = new int[countBelts][countDisk + 1];
  32.         //TODO: odebrat label pasku, shoduje se s indexem pole totiz
  33.         for (int i = 0; i < countBelts; i++) {
  34.             in = br.readLine().split(" ");
  35.             belts[i] = in;
  36.         }
  37.  
  38.         ///TODO labelovani, porovnani funguje
  39.         //kazdej pasek s kazdym
  40.         int countLabel;
  41.         for (int i = 0; i < countBelts; i++) {//ale az s tim dalsim
  42.             for (int j = i + 1; j < countBelts; j++) {   //kazdej segment pasku i s kazdym segmentem pasku j
  43.                 for (int k = 1; k < countDisk + 1; k++) {
  44.                     for (int l = k; l < countDisk + 1; l++) { //neporovnavame jiz porovnane znova
  45.                         String SegmentA = belts[i][k];
  46.                         String SegmentB = belts[j][l];
  47.                         //segmentB je rotaci segmentu A nebo zrcadlovou rotaci
  48.                         if (checkRotation(SegmentA, SegmentB) || checkRotation(SegmentA, flip(SegmentB))) {
  49.                         }
  50.                      }
  51.                 }
  52.             }
  53.         }
  54.  
  55.         for (int i = 0; i < countBelts; i++) {//ale az s tim dalsim
  56.             for (int j = 0; j < countDisk + 1; j++) {
  57.                 System.out.print(labels[i][j]);
  58.             }
  59.             System.out.println("");
  60.         }
  61.     }
  62.  
  63.     public static boolean checkRotation(String s1, String s2) {
  64.         //vrati true, kdyz string1 obsahuje string 2
  65.  
  66.         if ((s1.length() == s2.length()) && ((s1 + s1).contains(s2))) {
  67.             return true;
  68.         } else {
  69.             return false;
  70.  
  71.         }
  72.     }
  73.  
  74.     //zrcadleni
  75.     public static String flip(String s1) {
  76.         StringBuilder str = new StringBuilder(s1);
  77.         return str.reverse().toString();
  78.     }
  79.  
  80.     public static void makeSameLabelsTogether() {
  81.  
  82.     }
  83.  
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement