diff --git a/inclusao-de-subintervalos/inclusao-de-subintervalos-tutorial.pdf b/inclusao-de-subintervalos/inclusao-de-subintervalos-tutorial.pdf index ba04b33..34e1dcc 100644 Binary files a/inclusao-de-subintervalos/inclusao-de-subintervalos-tutorial.pdf and b/inclusao-de-subintervalos/inclusao-de-subintervalos-tutorial.pdf differ diff --git a/inclusao-de-subintervalos/inclusao-de-subintervalos.pdf b/inclusao-de-subintervalos/inclusao-de-subintervalos.pdf index cde58e5..0968b28 100644 Binary files a/inclusao-de-subintervalos/inclusao-de-subintervalos.pdf and b/inclusao-de-subintervalos/inclusao-de-subintervalos.pdf differ diff --git a/inclusao-de-subintervalos/problem.json b/inclusao-de-subintervalos/problem.json index 307bf3e..148a65f 100644 --- a/inclusao-de-subintervalos/problem.json +++ b/inclusao-de-subintervalos/problem.json @@ -11,10 +11,14 @@ "grader": false, "subject": { "en_us": [ - "set-cover-problem", "greedy", "sorting" + "set-cover-problem", + "greedy", + "sorting" ], "pt_br": [ - "inclusao-de-subintervalos", "guloso", "ordenação" + "inclusao-de-subintervalos", + "guloso", + "ordenação" ], "es": [ "" @@ -43,9 +47,16 @@ }, "solutions": { "main-ac": "ac.cpp", - "alternative-ac": ["caio.cpp"], - "wrong-answer": ["wa.cpp"], - "time-limit": ["TLE.cpp"], + "alternative-ac": [ + "caio.cpp", + "saad.py" + ], + "wrong-answer": [ + "wa.cpp" + ], + "time-limit": [ + "TLE.cpp" + ], "time-limit-or-ac": [], "time-limit-or-memory-limit": [], "memory-limit": [], diff --git a/inclusao-de-subintervalos/src/saad.py b/inclusao-de-subintervalos/src/saad.py new file mode 100644 index 0000000..375d291 --- /dev/null +++ b/inclusao-de-subintervalos/src/saad.py @@ -0,0 +1,29 @@ +import sys + + +def main() -> None: + data = list(map(int, sys.stdin.buffer.read().split())) + n = data[0] + + intervals = [] + index = 1 + for _ in range(n): + left = data[index] + right = data[index + 1] + intervals.append((left, right)) + index += 2 + + intervals.sort(key=lambda interval: (interval[0], -interval[1])) + + last_covered = intervals[0][1] + count = 1 + for _, right in intervals[1:]: + if last_covered < right: + last_covered = right + count += 1 + + sys.stdout.write(f"{count}\n") + + +if __name__ == "__main__": + main() \ No newline at end of file