java
public class AbnormalAttendance {
static class Attendance{
String id;
Integer time;
Integer distance;
String actualDeviceNumber;
String registeredDeviceNumber;
public Attendance(String id, Integer time, Integer distance, String actualDeviceNumber, String registeredDeviceNumber) {
this.id = id;
this.time = time;
this.distance = distance;
this.actualDeviceNumber = actualDeviceNumber;
this.registeredDeviceNumber = registeredDeviceNumber;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Integer getTime() {
return time;
}
public void setTime(Integer time) {
this.time = time;
}
public Integer getDistance() {
return distance;
}
public void setDistance(Integer distance) {
this.distance = distance;
}
public String getActualDeviceNumber() {
return actualDeviceNumber;
}
public void setActualDeviceNumber(String actualDeviceNumber) {
this.actualDeviceNumber = actualDeviceNumber;
}
public String getRegisteredDeviceNumber() {
return registeredDeviceNumber;
}
public void setRegisteredDeviceNumber(String registeredDeviceNumber) {
this.registeredDeviceNumber = registeredDeviceNumber;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int N = sc.nextInt();
sc.nextLine();
// 2
// {id},{time},{distance},{actualDeviceNumber},{registeredDeviceNumber}
// 100000,10,1,ABCD,ABCD
// 100000,50,10,ABCD,ABCD
List<String> list = new ArrayList<>(N);
for(int i=0;i<N;i++){
String nextLine = sc.nextLine();
list.add(nextLine);
}
solve(list,N);
}
}
public static void solve(List<String> list,int N){
List<Attendance> attendanceList = new ArrayList<>(N);
for(String line:list){
String[] split = line.split(",");
Attendance attendance = new Attendance(split[0], Integer.parseInt(split[1]), Integer.parseInt(split[2]), split[3], split[4]);
attendanceList.add(attendance);
}
List<Integer> index = new ArrayList<>(N);
for(int i=0;i<N;i++){
Attendance attendance = attendanceList.get(i);
if(!attendance.getRegisteredDeviceNumber().equals(attendance.getActualDeviceNumber())){
index.add(i);
}
for(int j=i+1;j<N;j++){
Attendance attendance1 = attendanceList.get(j);
if(Math.abs(attendance1.getTime()-attendance.getTime())<=60 && Math.abs(attendance1.getDistance()-attendance.getDistance())>5){
index.add(i);
index.add(j);
}
}
}
List<Integer> collect = index.stream().distinct().collect(Collectors.toList());
if(collect.isEmpty()){
System.out.println("null");
}else{
for(int i=0;i<collect.size();i++){
System.out.print(list.get(collect.get(i)));
if(i!=collect.size()-1){
System.out.print(";");
}
}
}
}
}