Submission
Status:
PPPPPP-P-P
Score: 80
User: Jokul
Problemset: ไฟส่อง
Language: c
Time: 0.001 second
Submitted On: 2025-04-13 08:56:43
#include <stdio.h>
int main() {
int n, max = 0;
scanf("%d", &n);
int a[n], b[n];
// Read the angles for each projector
for (int i = 0; i < n; i++) {
scanf("%d %d", &a[i], &b[i]);
}
// Create an array to mark illuminated angles
int illuminated[360] = {0};
// Mark the illuminated ranges
for (int i = 0; i < n; i++) {
if (a[i] < b[i]) {
for (int j = a[i]; j < b[i]; j++) {
illuminated[j] = 1;
}
} else {
for (int j = a[i]; j < 360; j++) {
illuminated[j] = 1;
}
for (int j = 0; j < b[i]; j++) {
illuminated[j] = 1;
}
}
}
// Calculate the longest continuous illuminated segment
int current_length = 0;
for (int i = 0; i < 360; i++) {
if (illuminated[i]) {
current_length++;
} else {
if (current_length > max) {
max = current_length;
}
current_length = 0;
}
}
// Check the last segment
if (current_length > max) {
max = current_length;
}
// Check for wrap-around case
if (illuminated[0]) {
current_length = 0;
for (int i = 0; i < 360; i++) {
if (illuminated[i]) {
current_length++;
} else {
break;
}
}
max = (current_length > max) ? current_length : max;
}
// Check if the entire circle is illuminated
int total_illuminated = 0;
for (int i = 0; i < 360; i++) {
if (illuminated[i]) {
total_illuminated++;
}
}
// If the entire circle is illuminated, return 360
if (total_illuminated == 360) {
printf("360\n");
} else {
printf("%d\n", max);
}
return 0;
}