[CF538C]Tourist's Notes

来源:互联网 发布:刷qq会员永久软件 编辑:程序博客网 时间:2024/06/08 02:59

题目大意

懒得写

做法

每一段内求个最高,列不等式。

#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=100000+10;int d[maxn],h[maxn];int i,j,k,l,t,n,m,x,y,ans;bool czy;int main(){    scanf("%d%d",&n,&m);    fo(i,1,m) scanf("%d%d",&d[i],&h[i]);    ans=max(h[1]+d[1]-1,h[m]+n-d[m]);    //d[0]=1;    czy=1;    fo(i,1,m-1){        y=d[i+1]-d[i];        x=(h[i+1]+y-h[i])/2;        ans=max(ans,h[i]+x);        if (h[i]<h[i+1]&&h[i]+y<h[i+1]) czy=0;        else if (h[i]>h[i+1]&&h[i]-y>h[i+1]) czy=0;    }    if (!czy) printf("IMPOSSIBLE\n");    else printf("%d\n",ans);}
原创粉丝点击