http://acm.hdu.edu.cn/showproblem.php?pid=1556
这道题我超时了几遍
超时代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,a[100001],b[100001],i,j,c[100001];
int main()
{
while(~scanf("%d",&n)&&n!=0)
{
memset(c,0,sizeof(c));
int s;
for(i=1;i<=n;i++)
{
scanf("%d %d",&a[i],&b[i])
for(s=a[i];s<=b[i];s++)
{
c[s]++;
}
}
for(j=1;j<n;j++)
{
printf("%d ",c[j]);
}
printf("%d\n",c[n]);
}
return 0;
}
亲们千万不要和我犯一样的错误呦。。。
正确代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int j,n,i,a,m,b;
while(~scanf("%d",&n)&&n!=0)
{
int c[100001]={0};
j=n;
m=0;
while(j--)
{
scanf("%d %d",&a,&b);
c[a]++;
c[b+1]--;
}
for(i=1;i<n;i++)
{
m+=c[i];
printf("%d ",m);
}
printf("%d\n",m+c[n]);
}
return 0;
}