如下代码大数据(无数组越界)会输出负数,但是我对浮点数不是很了解,大佬们可以看一看吗/kel
#include<bits/stdc++.h>
using namespace std;
#define db long double
db dp[10001];
int n,m,i,j,k,s;
struct evs
{
int h,v;
} a[10001];
bool cmp(evs a,evs b)
{
if(a.h==b.h)return a.v>b.v;
return a.h<b.h;
}
db getans(int x,int y,db z)
{
db t=z/2;
if(x-y<t)return z;
return x-y+t;
}
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d%d",&a[i].h,&a[i].v);
sort(a+1,a+n+1,cmp);
for(i=1;i<=n;i++) dp[i]=a[i].h;
for(i=2;i<=n;i++)
for(j=1;j<i;j++)
if(a[i].v<=a[j].v)dp[i]=min(dp[i],getans(a[i].h,a[j].h,dp[j]));
printf("%.0Lf",ceil(dp[n]));
return 0;
}