#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) 回帖