2 2 8 6 1 1 4 5 2 10 6 4 5 6 5
1 2
貪心解決問題
#include"stdio.h"
#include"math.h"
#include"stdlib.h"
#define N 100005
struct node
{
double l,r; //記錄每個水龍頭能灌溉的左右邊界
}f[N];
int cmp(const void*a,const void*b)
{
return (*(struct node*)a).l<(*(struct node*)b).l?-1:1;
}
int main()
{
int t,n,i,j;
double w,h,x,r;
scanf("%d",&t);
while(t--)
{
scanf("%d%lf%lf",&n,&w,&h);
h/=2;
for(i=0,j=0;i0)
break;
if(rr=w)
break;
if(f[i].l<=rr) //從交叉地方取一個最右邊的那個噴水裝置
{
if(f[i].r>cur)
cur=f[i].r;
}
if(f[i].l>rr)
{
if(f[i].l>cur)
{
cnt=0;
break;
}
else
{
cnt++;
rr=cur;
cur=0;
}
}
}
if(rr