Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int ádasdas(String s) {
- if (checkPhomU(s))
- return 0;
- List<String> cards = new ArrayList<String>();
- String ss = "";
- for (int i = 0; i < s.length(); i++) {
- ss = ss + s.charAt(i);
- if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
- cards.add(ss);
- ss = "";
- }
- }
- Collections.sort(cards);
- int min_1 = Math.min(ck4Cay(cards), ckSanh(cards));
- if (min_1 == 1) return 1;
- int min_2 = 9;
- while (true) {
- int i = cards.size() - 2;
- String tmp = "";
- while (i >= 0 && (cards.get(i).compareTo(cards.get(i + 1)) > 0))
- i--;
- if (i < 0)
- break;
- else {
- int k = cards.size() - 1;
- while (cards.get(k).compareTo(cards.get(i)) < 0)
- k--;
- tmp = cards.get(k);
- cards.set(k, cards.get(i));
- cards.set(i, tmp);
- int h = cards.size() - 1, o = i + 1;
- while (h > o) {
- tmp = cards.get(h);
- cards.set(h, cards.get(o));
- cards.set(o, tmp);
- o++;
- h--;
- }
- }
- min_2 = Math.min(min_2, Math.min(ck4Cay(cards), ckSanh(cards)));
- if (min_2 == 1) return 1;
- }
- return Math.min(min_1, min_2);
- }
- int ckSanh(List<String> cards) {
- int c = 0;
- for (int i = 0; i < 3; i++) {
- String card[] = new String[3];
- int num[] = new int[3];
- for (int j = 0; j < 3; j++) {
- card[j] = cards.get(i * 3 + j);
- num[j] = Integer.parseInt(card[j].substring(0, card[j].length() - 1));
- }
- int c1 = 2, c2 = 0;
- if (num[0] == num[1] && num[1] == num[2])
- c1 = 0;
- else if (num[0] != num[1] && num[0] != num[2] && num[1] != num[2])
- c1 = 2;
- else
- c1 = 1;
- if (num[0] > 11)
- c2 = 3;
- else
- for (int j = 1; j < 3; j++)
- c2 += (card[0].charAt(card[0].length() - 1) != card[j].charAt(card[j].length() - 1)) ? 1
- : (num[j] - num[0] != j) ? 1 : 0;
- c += Math.min(c1, c2);
- }
- return c;
- }
- boolean checkPhomU(String t) {
- int rLe = 0, v = 0, q = 0, y = 0, d = 0;
- for (int i = 0, j = 0; i < 512; j = ++i) {
- String s = t;
- int[] c = new int[14];
- for (char x = 64; ++x < 90;)
- for (y = 15; y-- > 0;) {
- d = 2;
- if (s != (s = s.replace("" + y + x, ""))) {
- d = j % 2;
- j /= 2;
- if (d > 0)
- c[y]++;
- else
- v++;
- }
- if (d > 0) {
- if (v > 2)
- q += v;
- v = 0;
- }
- }
- for (int e : c)
- q += e > 2 ? e : 0;
- rLe |= q /= 9;
- }
- return rLe == 1;
- }
- int ck4Cay(List<String> cards) {
- int c = 0;
- int num[] = new int[5];
- for (int i = 0; i < 5; i++) {
- String cI = cards.get(i);
- num[i] = Integer.parseInt(cI.substring(0, cI.length() - 1));
- }
- int c1 = 0, c2 = 0;
- String card_0 = cards.get(0);
- int card_0_l = card_0.length();
- for (int i = 1; i < 4; i++) {
- c1 += num[0] == num[i] ? 0 : 1;
- boolean checkNum = (num[0] + i) == num[i];
- boolean checkSuit = card_0.charAt(card_0_l - 1) == cards.get(i).charAt(cards.get(i).length() - 1);
- c2 += checkNum && checkSuit ? 0 : 1;
- }
- c += Math.min(c1, c2);
- for (int i = 5; i < 9; i++) {
- if (cards.get(i).charAt(cards.get(i).length() - 1) != cards.get(4).charAt(cards.get(4).length() - 1)) {
- c++;
- continue;
- }
- String n = cards.get(i).substring(0, cards.get(i).length() - 1);
- if (Integer.parseInt(n) != (num[4] + i - 4))
- c++;
- }
- return c;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement