文章

34

粉丝

329

获赞

1

访问

281.3k

头像
题解
P1458 中国科学技术大学机试题
发布于2020年5月19日 09:55
阅读数 8.6k

#include <stdio.h>
#include <stdlib.h>
struct station
{
    int A;
    int B;
    int num;
}a[20];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    int i,j,t,w,e,y;
    for(i=0;i<n;i++)
    {
        scanf("%d%d%d",&a[i].A,&a[i].B,&a[i].num);
    }

    for(i=0;i<n;i++)
    {
    if(i==0)
    {
            if(a[i].num<m)printf("1\n");
            else {printf("0\n");a[i].num=0; }//如果不行,要直接注销为零,这样不影响后面比较。
    }
    if(i>0)
    { w=e=i;
      t=a[w].num;
      y=1;
          for(j=0;j<e;j++)//因为之后,每一次都要和前面所有比较,所以有i次循环(e=i)
        {
            if(a[w].A<=a[w-y].B&&a[w].A>=a[w-y].A||a[w].B<=a[w-y].B&&a[w].B>=a[w-y].A)
            {
                t=t+a[w-1].num;
                 w--;
            }
            else y++;

        }
        if(t>m){printf("0\n");a[e].num=0; }
       if(t<=m) printf("1\n");
    }

    }

    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发