竞赛讨论区 > 这题c语言是不是过不了?
头像
默言201910171743441
发布于 2019-11-29 20:50
+ 关注

这题c语言是不是过不了?

#include<stdio.h>
#include<stdlib.h>
int i,j,n,book[30054],max,min;
typedef struct
{
    int a;
    int b;
    int c;
}node;
node d[5005];
int cmp(const void *x,const void *y)
{
    return ((node *)x)->b-((node *)y)->b;
}
main()
{
    scanf("%d",&max);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d %d %d",&d[i].a,&d[i].b,&d[i].c);
    }
    qsort(d,n,sizeof(d[0]),cmp);
    for (i=1;i<=n;i++) {
        int cnt=0;
        for (j=d[i].a;j<=d[i].b;j++) {
            if (book[j]==1) cnt++;
        }
    for (j=d[i].b;j>=d[i].a;j--){
            if (cnt>=d[i].c) break;
            if (book[j]==0) book[j]=1, min++, cnt++;
            if (cnt==d[i].c) break;
        }
    }
    printf("%d",min);
}
#include<bits/stdc++.h>
using namespace std;
int i,j,n,book[30054]={0},m;
typedef struct
{
    int a,b,c;
}node;
node d[5005];
int cmp(const node x,const node y)
{
    return x.b<y.b;
}
int main()
{
    scanf("%d",&i);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d %d %d",&d[i].a,&d[i].b,&d[i].c);
    }
    sort(d+1,d+n+1,cmp);
    for (i=1;i<=n;i++) {
        int cnt=0;
        for (j=d[i].a;j<=d[i].b;j++) {
            if (book[j]==1) cnt++;
        }
        if (cnt>=d[i].c) continue;
    for (j=d[i].b;j>=d[i].a;j--){
            if (book[j]==0) book[j]=1, m++, cnt++;
            if (cnt==d[i].c) break;
        }
    }
    printf("%d",m);return 0;
}

这两个代码完全一样但为什么c语言一直有一个点是错的。

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐