This article is written by beginners in programming. What's wrong, you should do this more! !! If you have any questions, Please comment.
This question is also a paiza exercise. Please be assured that there is nothing to do with the rank up or down.
I tried to solve it in Java! !! Paiza Exercise "Long Table Eel Shop"
This is a procedural (is it correct?) Solution. Because I had some object-oriented code when I posted this article I digested it in my own way.
Please check here for the specific details of the problem.
Code written in non-object orientation
import java.util.*;
public class unagiya {
    public static void main(String[] args) {
        /*
         *Get the total number of seats in the store and the number of groups visiting the store as a String type and store it in line
         *Divide the data stored in line by split and store it in lineArray of String array
         */
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        String[] lineArray = line.split(" ");
        /*
         *Cast the data stored in the lineArray and store it in each variable
         * 
         * seatNum:Number of seats
         * totalGuest:Number of groups visiting the store
        */
        int seatNum = castString(lineArray[0]);
        int totalGuest = castString(lineArray[1]);
        /*
         * seats:Create the number of seats with hashMap
         *Integer is the seat number
         *Boolean is the presence or absence of people(If true, you can sit down,)
         */
        Map<Integer,Boolean> seats = new HashMap<>();
        for(int i = 1; i <= seatNum; i++){
            seats.put(i,true);
        }
        /*
         *isSitCustomer:Check if there are any people in the seat chosen by the customer
         *If not, throw true
         *
         * choiceSeat:Seat number that is the base point for customers to choose
         *menberNum:Number of customers who came
         */
        int choiceSeat = 0;
        int memberNum = 0;
        for(int i = 0; i < totalGuest; i++){
            //Receives console input
            //Assign to memberNum and choiceSeat
            line = scanner.nextLine();
            lineArray = line.split(" ");
            memberNum = castString(lineArray[0]);
            choiceSeat = castString(lineArray[1]);
            //If isSitGuest is true, rewrite the seat information selected by the customer and the number of seats to false.
            if(isSitGuest(seats,choiceSeat,memberNum)){
                for(int j = 0,index = 1 ; j < memberNum; j++){
                    if(seats.size() < choiceSeat + j){
                        seats.put(index, false);
                        index++;
                    } else {
                        seats.put(choiceSeat + j,false);
                    }
                }
            }
        }
        //Check the false number of seat information and assign it to the result
        int result = 0;
        for(int i = 1; i <= seats.size(); i++){
            if(seats.get(i).equals(false)){
                result++;
            }
        }
        System.out.println(result);
    }
    //Cast a String type number to an int type
    public static int castString(String strNum){
        int num = Integer.parseInt(strNum);
        return num;
    }
    /*
     *Map Receive seat information, seats selected by customers, number of customers,
     *Check if there is false for the number of customers from the seat selected by the customer
     * 
     *conditions
     *Returns false if there are more guests than seats
     *Returns false if there is even one false in the seat information
     */
    public static boolean isSitGuest(Map seats, int choiceSeat, int menberNum){
        if(menberNum > seats.size()){
            return false;    
        }
        boolean flag = true;
        for(int i = 0,index = 1; i < menberNum; i++){
            //index:Specify the very first 1 of the seat information
            //Used when counting from 1 when the number of customers exceeds the seat number
            if(seats.size() < choiceSeat + i){
                if(seats.get(index).equals(false)){
                    flag = false;
                    index++;
                } else {
                    index++;
                }
            } else if(seats.get(choiceSeat + i).equals(false)){
                flag = false;
            }
            }
        if(flag){
            return true;
        } else {
            return false;
        }
    }
}
I read it back after about two weeks, but it's hard to see. I make seats with Map and do various things ... (I stopped reading in the middle)
At that time, I was in a good mood, saying, "I was able to write a decent code."
However, a word from shiracamus who appeared like a meteor "Because it's a big deal, let's be object-oriented."
Here is the code I left with that word (We have permission from shiracamus to post the code)
import java.util.*;
enum Seat { AVAILABLE, TAKEN };
class LongTable {
    private Seat seat[];
    LongTable(int seatNum) {
        seat = new Seat[seatNum];
        for (int i = 0; i < seatNum; i++) {
            seat[i] = Seat.AVAILABLE;
        }
    }
    boolean sit(int position, int num) {
        for (int i = position; i < position + num; i++) {
            if (seat[i % seat.length] != Seat.AVAILABLE) {
                return false;
            }
        }
        for (int i = position; i < position + num; i++) {
            seat[i % seat.length] = Seat.TAKEN;
        }
        return true;
    }
}
public class Unagiya {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] input = scanner.nextLine().split(" ");
        int seatNum = Integer.parseInt(input[0]);
        int groupNum = Integer.parseInt(input[1]);
        LongTable table = new LongTable(seatNum);
        int sitCount = 0;
        for (int i = 0; i < groupNum; i++){
            input = scanner.nextLine().split(" ");
            int memberNum = Integer.parseInt(input[0]);
            int seatNumber = Integer.parseInt(input[1]);
            if (table.sit(seatNumber, memberNum)) {
                sitCount += memberNum;
            }
        }
        System.out.println(sitCount);
    }
}
The moment I saw this code, an electric shock struck my body.
Probably rewritten based on my code.
Then I spend more time, I will try to write in my own "object-oriented".
I start thinking about the characters first.
Let's consider it with reference to the flowchart I wrote earlier.

First of all ・ Long table
enum Seat {AVAILABLE,UNAVAILABLE}
From TAKEN Changed to the target UNAVAILABLE.
And the table. Since the table is a table, there are no methods (behaviors). It just exists there.
class LongTable {
	Seat[] seats;
	/**
	 *Constructor to create a table
	 *The initial value is AVAILABLE
	 * @param tableNum
	 */
	LongTable(Integer tableNum) {
		this.seats = new Seat[tableNum];
		for (int i = 0; i < tableNum; i++) {
			seats[i] = Seat.AVAILABLE;
		}
	}
}
Next is the Edokko customer. This time he is a little quick.
If there are no people in the seat (isSit) Sit (sitting) If there is a person in the seat (isSit) go home
class Guest {
	/**
	 *A method of throwing true if there is no one in the seat chosen by the customer
	 * @param guestNum
	 * @param choiceNum
	 * @param table
	 * @return
	 */
	public static Boolean isSit(Integer guestNum, Integer choiceNum, LongTable table) {
		Boolean seatConfirmation = true;
		for (int i = choiceNum; i < choiceNum + guestNum; i++) {
			if (table.seats[i % table.seats.length] == Seat.UNAVAILABLE) {
				seatConfirmation = false;
			}
		}
		return seatConfirmation;
	}
	/**
	 *A method in which a customer sits and makes the seat UNAVAILABLE
	 * @param guestNum
	 * @param choiceNum
	 * @param table
	 */
	public static void sitting(Integer guestNum, Integer choiceNum, LongTable table) {
		for (int i = choiceNum; i < choiceNum + guestNum; i++) {
			table.seats[i % table.seats.length] = Seat.UNAVAILABLE; 
		}
	}
}
Then, counting the number of people sitting in the seat is ... Maybe you will be the staff of the store.
class Staff {
	/**
	 *A method for counting the number of people sitting
	 * @param table
	 * @return count(Count the number of UNAVAILABLE seats)
	 */
	public static Integer sitCount(LongTable table) {
		Integer count = 0;
		for (int i = 0; i < table.seats.length; i++) {
			if (table.seats[i] == Seat.UNAVAILABLE) {
				count++;
			}
		}
		return count;
	}
}
The characters are now complete. All you have to do is watch the story progress.
The story is described in the main method.
public class Unagiya {
	public static void main(String[] args) throws Exception{
		//input: Get one line of input value from the console
		//inpuArray: Store the numbers in one row separately in an array
		Scanner scanner = new Scanner(System.in);
		String input = scanner.nextLine();
		String[] inputArray = input.split(" ");
		
		//tableNum: Number of eel seats
		//toDayGuest: How many groups of guests will come today
		Integer tableNum = toCastString(inputArray[0]);
		Integer toDayGuest = toCastString(inputArray[1]);
		
		LongTable table = new LongTable(tableNum);
		
		//guestNum: Number of people in one group
		//choiceNum: Seat chosen by the guest
		Integer guestNum = 0;
		Integer choiceNum = 0;
		for (int i = 0; i < toDayGuest; i++) {
			
			input = scanner.nextLine();
			inputArray = input.split(" ");
			
			guestNum = toCastString(inputArray[0]);
			choiceNum = toCastString(inputArray[1]);
			
			if (Guest.isSit(guestNum, choiceNum, table)) {
				Guest.sitting(guestNum, choiceNum, table);
			}
		}
		Integer count = Staff.sitCount(table);
		System.out.println(count);
	}
	/**
	 *Method to convert Arabic numeral of String type to Integer type
	 * @param strNum
	 * @return num
	 */
	public static Integer toCastString(String strNum) {
		Integer num = Integer.parseInt(strNum);
		return num;
	}
	
}

I passed without any problems.
https://www.slideshare.net/masuda220/ss-14263541 This slide is very helpful, but Since the binding is very strict, I am doing it a little loosely ww
This is the second article posted, though I'm afraid.
I'm probably ignoring cancer, such as Qiita's tacit understanding.
If you have read the above, I would appreciate it if you could keep some records. Thank you to everyone who read to the end.