Submission
Status:
PPPPPPPPPP
Score: 100
User: SnowAveNode
Problemset: ไฟส่อง
Language: cpp
Time: 0.002 second
Submitted On: 2025-04-01 07:43:50
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
cin.tie(NULL) -> sync_with_stdio(false);
int N; cin >> N;
vector<pair<int,int>> intervals;
for(int i = 0; i < N; i++){
int A, B; cin >> A >> B;
if(A < B){
intervals.push_back({A, B});
} else {
intervals.push_back({A, 360});
intervals.push_back({0, B});
}
}
sort(intervals.begin(), intervals.end());
vector<pair<int,int>> merged;
for(auto interval : intervals){
if(merged.empty() || interval.first > merged.back().second)
merged.push_back(interval);
else
merged.back().second = max(merged.back().second, interval.second);
}
if(merged.size() == 1 && merged[0].second - merged[0].first == 360){
cout << 360 << endl;
return 0;
}
int maxLen = 0;
for(auto interval : merged){
maxLen = max(maxLen, interval.second - interval.first);
}
if(merged.front().first == 0 && merged.back().second == 360){
int candidate = merged.front().second + (360 - merged.back().first);
maxLen = max(maxLen, candidate);
}
cout << maxLen << endl;
}