比赛 |
20120806 |
评测结果 |
AAAAAAAAAA |
题目名称 |
环保绿化 |
最终得分 |
100 |
用户昵称 |
feng |
运行时间 |
0.084 s |
代码语言 |
C++ |
内存使用 |
0.66 MiB |
提交时间 |
2012-08-06 11:53:15 |
显示代码纯文本
#include<cstdio>
using namespace std;
int a[30003],b[30003],c[30003];
bool f[30003];
int i,j,k,n,h;
void swap(int a,int b){
int tmp;
tmp=a;
a=b;
b=tmp;
}
void qsorts(int l,int r){
int i=l,j=r,mid=(l+r)/2,s=a[mid],x=b[mid],tmp;
while (i<=j){
while ((b[i]<x)and(i<n)) i++;
while ((b[j]>x)and(j>0)) j--;
if (i<=j){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
tmp=b[i];
b[i]=b[j];
b[j]=tmp;
tmp=c[i];
c[i]=c[j];
c[j]=tmp;
i++;
j--;
}
}
if (i<r) qsorts(i,r);
if (j>l) qsorts(l,j);
}
int main()
{
freopen("trees.in","r",stdin);
freopen("trees.out","w",stdout);
scanf("%d",&n);
scanf("%d",&h);
for (i=1;i<=h;i++)
scanf("%d%d%d",&a[i],&b[i],&c[i]);
qsorts(1,h);
for (i=1;i<=n;i++){
k=0;
for (j=a[i];j<=b[i];j++)
if (f[j]) k++;
if (k>=c[i])
continue;
for (j=b[i];j>=a[i];j--){
if (!f[j]){
k++;
f[j]=true;
}
if (k==c[i])
break;
}
}
k=0;
for (i=1;i<=n;i++)
if (f[i]) k++;
printf("%d\n",k);
return 0;
}