#include<bits/stdc++.h>
using namespace std;
using day=pair<int,int>;
int n,m,as;
day a[100005];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++)cin>>a[i].first>>a[i].second;
sort(a+1,a+1+m);
as=a[0].first+a[0].second-1;
for(int i=1;i<=m-1;i++){
int t=a[i+1].first-a[i].first-abs(a[i].second-a[i+1].second);
if(t<0){
cout<<"IMPOSSIBLE";
return 0;
}
as=max(as,max(a[i].second,a[i+1].second+t/2));
}
as=max(as,a[m-1].second+(n-a[m-1].first));
cout<<as;
}
题目是啥
#include<bits/stdc++.h>
using namespace std;
using day=pair<int,int>;
int n,m,as;
day a[100005];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++)cin>>a[i].first>>a[i].second;
sort(a+1,a+1+m);
as=a[1].first+a[1].second-1;
for(int i=1;i<=m-1;i++){
int t=a[i+1].first-a[i].first-abs(a[i].second-a[i+1].second);
if( a[i+1].first-a[i].first<abs(a[i].second-a[i+1].second)){
cout<<“IMPOSSIBLE”;
return 0;
}
as=max(as,max(a[i].second,a[i+1].second+t/2));
}
as=max(as,a[m-1].second+(n-a[m-1].first));
cout<<as;
}
90分
改不来了QAQ
![]()
应为 as=max(as,max(a[i].second,a[i+1].second)+t/2);
#include<bits/stdc++.h>
using namespace std;
using day=pair<int,int>;
int n,m,as;
day a[100005];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++)cin>>a[i].first>>a[i].second;
sort(a+1,a+1+m);
as=a[0].first+a[0].second-1;
for(int i=1;i<=m-1;i++){
int t=a[i+1].first-a[i].first-abs(a[i].second-a[i+1].second);
if(t<0){
cout<<“IMPOSSIBLE”;
return 0;
}
as=max(as,max(a[i].second,a[i+1].second)+t/2);
}
as=max(as,a[m-1].second+(n-a[m-1].first));
cout<<as;
}