package com.javarush.task.task22.task2207; import javax.imageio.IIOException; import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; /* Обращенные слова */ public class Solution { public static List<Pair> result = new LinkedList<>(); public static void main(String[] args) throws IOException { String fileName=""; BufferedReader bufferedReade1 = new BufferedReader(new InputStreamReader(System.in)); fileName=bufferedReade1.readLine(); bufferedReade1.close(); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(new FileInputStream(fileName),"UTF8")); ArrayList<String> arrayList = new ArrayList<>(); while (bufferedReader.ready()){ String[]str=bufferedReader.readLine().replace("\uFEFF", "").split(" "); arrayList.addAll(Arrays.asList(str)); } bufferedReader.close(); while (arrayList.size()>1){ String s= arrayList.get(0); arrayList.remove(0); for(int i =0;i<arrayList.size();i++){ StringBuilder sb1=new StringBuilder(arrayList.get(i)); String s1= sb1.reverse().toString(); if (s.equals(s1)){ result.add(new Pair(s,arrayList.get(i))); } } } for(Pair p:result){ System.out.println(p.first+" "+p.second); } } public static class Pair { String first; String second; @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Pair pair = (Pair) o; if (first != null ? !first.equals(pair.first) : pair.first != null) return false; return second != null ? second.equals(pair.second) : pair.second == null; } public Pair(){ } public Pair(String first, String second){ this.first=first; this.second=second; } @Override public int hashCode() { int result = first != null ? first.hashCode() : 0; result = 31 * result + (second != null ? second.hashCode() : 0); return result; } @Override public String toString() { return first == null && second == null ? "" : first == null ? second : second == null ? first : first.compareTo(second) < 0 ? first + " " + second : second + " " + first; } } }