Не понимаю что не так, пишет "вывести в одну строку", я так и сделал в одну строку через пробел
package com.javarush.task.task18.task1804;
import java.io.*;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.*;
/*
Самые редкие байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
try {
BufferedInputStream b=new BufferedInputStream(new FileInputStream(buf.readLine()));
List<Integer>list=new ArrayList<Integer>();
Map<Integer, Integer>m=new HashMap<Integer, Integer>();
while(b.available()>0) {
list.add(b.read());
}
b.close();
/*for(Integer i:list) System.out.print(i + " ");*/
System.out.println();
int count=1, k = 0;
for(int i=0;i<list.size();i++) {
k++;
for(int j=k;j<list.size();) {
int a = list.get(i);
int c = list.get(j);
if(a==c) {
count++;
list.remove(j);
}
if(list.get(i)!=list.get(j)) j++;
}
m.put(list.get(i),count);
count=1;
}
/*for(Map.Entry<Integer,Integer>entry:m.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
for(Integer i:list) System.out.print(i + " ");
System.out.println();*/
ArrayList<Integer>val=new ArrayList<Integer>(m.values());
int min=val.get(0);
for(Map.Entry<Integer,Integer>entry:m.entrySet()) {
min = Math.min(min, entry.getValue());
}
for(Map.Entry<Integer,Integer>entry:m.entrySet()) {
if(entry.getValue()==min) System.out.print(entry.getKey() + " ");
}
}catch(IOException io) {}
try{buf.close();}catch(IOException io) {}
}
}