Работает, но не проходит валидацию
*40-я строчка не al1.get(i + n + 1))); а al.get(i);
package com.javarush.task.task19.task1916;
import java.util.ArrayList;
import java.util.List;
/*
Отслеживаем изменения
*/
import java.io.*;
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) throws Exception{
ArrayList<String> al = new ArrayList<String>();
ArrayList<String> al1 = new ArrayList<String>();
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
String name = br2.readLine();
String name1 = br2.readLine();
BufferedReader br = new BufferedReader(new FileReader(name));
BufferedReader br1 = new BufferedReader(new FileReader(name1));
br2.close();
for(int i = 0;br.ready();i++){
al.add(br.readLine());
}
for(int i = 0;br1.ready();i++){
al1.add(br1.readLine());
}
int n = 0;
for(int i = 0;i<al.size();i++)
{
if(al.get(i).equals(al1.get(i + n))){
lines.add(new LineItem(Type.SAME,al.get(i)));
}
else if(i>0&al.get(i).equals(al1.get(i + n + 1))) {
lines.add(new LineItem(Type.ADDED, al1.get(i + n)));
lines.add(new LineItem(Type.SAME, al1.get(i + n + 1)));
n++;
}
else{
lines.add(new LineItem(Type.REMOVED,al.get(i)));
n--;
}
}
br.close();
br1.close();
}
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;
}
public String toString(){
return this.line + " " + this.type;
}
}
}