OneCompiler

pra militant

282

import java.util.*;

public class Solution {

// Militant class
public static class Militant {
    private int militantId;
    private String name;
    private String category;
    private double experience;

    public Militant(int militantId, String name, String category, double experience) {
        this.militantId = militantId;
        this.name = name;
        this.category = category;
        this.experience = experience;
    }

    public int getMilitantId() {
        return militantId;
    }

    public String getName() {
        return name;
    }

    public String getCategory() {
        return category;
    }

    public double getExperience() {
        return experience;
    }
}

// Method to search for a militant by ID
public static Militant searchMilitantByMilitantId(List<Militant> militants, int militantId) {
    for (Militant militant : militants) {
        if (militant.getMilitantId() == militantId) {
            return militant;
        }
    }
    return null;
}

// Method to find militants with less than 2 years experience
public static List<Militant> findMilitantsWithLessThanTwoYearsExperience(List<Militant> militants) {
    List<Militant> result = new ArrayList<>();
    for (Militant militant : militants) {
        if (militant.getExperience() < 2.0) {
            result.add(militant);
        }
    }
    return result;
}

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    // Read the number of militants
    int n = scanner.nextInt();
    scanner.nextLine(); // Consume newline

    // List to store militants
    List<Militant> militants = new ArrayList<>();

    // Read details of each militant
    for (int i = 0; i < n; i++) {
        int militantId = Integer.parseInt(scanner.nextLine().trim());
        String name = scanner.nextLine().trim();
        String category = scanner.nextLine().trim();
        double experience = Double.parseDouble(scanner.nextLine().trim());

        // Avoid duplicates based on militantId
        boolean duplicate = false;
        for (Militant militant : militants) {
            if (militant.getMilitantId() == militantId) {
                duplicate = true;
                break;
            }
        }
        if (!duplicate) {
            militants.add(new Militant(militantId, name, category, experience));
        }
    }

    // Search for a militant by ID
    int searchId = Integer.parseInt(scanner.nextLine().trim());
    Militant found = searchMilitantByMilitantId(militants, searchId);
    if (found != null) {
        System.out.println(found.getMilitantId());
        System.out.println(found.getName());
        System.out.println(found.getCategory());
        System.out.println(found.getExperience());
    } else {
        System.out.println("No militant found with given id");
    }

    // Find militants with less than 2 years of experience
    List<Militant> lessExperienced = findMilitantsWithLessThanTwoYearsExperience(militants);
    if (!lessExperienced.isEmpty()) {
        for (Militant militant : lessExperienced) {
            System.out.println(militant.getMilitantId());
            System.out.println(militant.getName());
            System.out.println(militant.getCategory());
            System.out.println(militant.getExperience());
        }
    } else {
        System.out.println("No militant found with less than 2 years of experience");
    }

    scanner.close();
}

}