Прошу у гуру помощи - на тестовых файлах решает все комбинации файлов, однако валидатор находит ошибку. Помогите пожалуйста, потому как третий день уже ломаю голову(((
package com.javarush.task.task19.task1916;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName1 = reader.readLine();
String fileName2 = reader.readLine();
reader.close();
FileReader fileReader1 = new FileReader(fileName1);
FileReader fileReader2 = new FileReader(fileName2);
BufferedReader readerFile1 = new BufferedReader(fileReader1);
BufferedReader readerFile2 = new BufferedReader(fileReader2);
List<String> listF1 = new ArrayList<>();
List<String> listF2 = new ArrayList<>();
while (readerFile1.ready()) {
listF1.add(readerFile1.readLine());
}
while (readerFile2.ready()) {
listF2.add(readerFile2.readLine());
}
readerFile1.close();
readerFile2.close();
int f1=0,f2=0;
boolean flag = false;
while (true) {
if (listF1.get(f1).equals(listF2.get(f2))) {
lines.add(new LineItem(Type.SAME, listF1.get(f1)));
if (f1 != listF1.size()-1)
f1++;
if (f2 != listF2.size()-1)
f2++;
} else {
if (f2 != listF2.size() - 1) f2++;
if (listF1.get(f1).equals(listF2.get(f2))) {
lines.add(new LineItem(Type.ADDED, listF2.get(f2-1)));
} else {
lines.add(new LineItem(Type.REMOVED, listF1.get(f1)));
if (f2 != listF2.size() - 1) f2--;
if (f1 != listF1.size() - 1) f1++;
}
}
if (flag)
break;
if(f1==listF1.size()-1&&f2==listF2.size()-1)
flag = true;
}
// for(LineItem line : lines)
// System.out.println(line.type+" "+line.line);
}
public static enum Type {
ADDED, //добавлена новая строка
REMOVED, //удалена строка
SAME //без изменений
}
public static class LineItem {
public Type type;
public String line;
public LineItem(Type type, String line) {
this.type = type;
this.line = line;
}
}
}