Java
paiza-learning

[ネタばれ] 長テーブルのうなぎ屋 (paizaランク B 相当)

https://paiza.jp/learning/long-table

境界線の処理をどうするかの問題だよなこれ

package jp.mirageworld.paiza_learning;

import java.io.InputStream;
import java.util.Scanner;

class UnagiNew {

    public static void main(String[] args) {
        System.out.println(exec(System.in));
    }

    public static int exec(InputStream is) {
        try (Scanner sc = new Scanner(is);) {
            // 座席数
            int n = sc.nextInt();
            boolean[] bools = new boolean[n];
            // グループ数
            int m = sc.nextInt();
            for (int i = 0; i < m; i++) {
                // 人数
                int a = sc.nextInt();
                // 開始位置
                int b = sc.nextInt();
                // チェック
                boolean check = false;
                for (int j = b; j < a + b; j++)
                    if (bools[j % bools.length] && (check = true))
                        break;
                if (check)
                    continue;
                for (int j = b; j < a + b; j++)
                    bools[j % bools.length] = true;
            }
            int ret = 0;
            for (boolean b : bools)
                if (b)
                    ret++;
            return ret;
        }
    }
}

関連:
https://qiita.com/krppppp/items/a75205c9dcb4165ca2b4