HDU1800总是WA
#include<stdio.h>#include<stdlib.h>#include<string.h>intcmp(constvoid*a,constvoid*b){...
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b>0?-1:1;
}
struct data
{
long level;
int flag;
}a[3001];
int main()
{
long n,i,j,sum,t;
while(scanf("%d",&n)!=EOF)
{
sum=0;
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
scanf("%ld",&a[i].level);
qsort(a,n,sizeof(a[0]),cmp);
for(i=0;i<n;i++)
{
if(a[i].flag==1) continue;
sum++;
t=a[i].level;
for(j=i+1;j<n;j++)
{
if(a[j].flag==1) continue;
if(a[j].level<t)
{
t=a[j].level;
a[j].flag=1;
}
}
}
printf("%ld\n",sum);
}
return 0;
} 展开
#include<stdlib.h>
#include<string.h>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b>0?-1:1;
}
struct data
{
long level;
int flag;
}a[3001];
int main()
{
long n,i,j,sum,t;
while(scanf("%d",&n)!=EOF)
{
sum=0;
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
scanf("%ld",&a[i].level);
qsort(a,n,sizeof(a[0]),cmp);
for(i=0;i<n;i++)
{
if(a[i].flag==1) continue;
sum++;
t=a[i].level;
for(j=i+1;j<n;j++)
{
if(a[j].flag==1) continue;
if(a[j].level<t)
{
t=a[j].level;
a[j].flag=1;
}
}
}
printf("%ld\n",sum);
}
return 0;
} 展开
1个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int cmp(const void *a,const void *b)
{
__int64 na = *((__int64*)a);
__int64 nb = *((__int64*)b);
return na>nb?-1:na<nb?1:0;
}
struct data
{
__int64 level;
int flag;
}a[3001];
int main()
{
long n,i,j,sum;
__int64 t;
while(scanf("%d",&n)!=EOF)
{
sum=0;
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
scanf("%I64d",&a[i].level);
qsort(a,n,sizeof(a[0]),cmp);
for(i=0;i<n;i++)
{
if(a[i].flag==1) continue;
sum++;
t=a[i].level;
for(j=i+1;j<n;j++)
{
if(a[j].flag==1) continue;
if(a[j].level<t)
{
t=a[j].level;
a[j].flag=1;
}
}
}
printf("%ld\n",sum);
}
return 0;
}
#include<stdlib.h>
#include<string.h>
int cmp(const void *a,const void *b)
{
__int64 na = *((__int64*)a);
__int64 nb = *((__int64*)b);
return na>nb?-1:na<nb?1:0;
}
struct data
{
__int64 level;
int flag;
}a[3001];
int main()
{
long n,i,j,sum;
__int64 t;
while(scanf("%d",&n)!=EOF)
{
sum=0;
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
scanf("%I64d",&a[i].level);
qsort(a,n,sizeof(a[0]),cmp);
for(i=0;i<n;i++)
{
if(a[i].flag==1) continue;
sum++;
t=a[i].level;
for(j=i+1;j<n;j++)
{
if(a[j].flag==1) continue;
if(a[j].level<t)
{
t=a[j].level;
a[j].flag=1;
}
}
}
printf("%ld\n",sum);
}
return 0;
}
更多追问追答
追问
这个是什么问题?
麻烦指出来,数据类型定义问题?
追答
level用64位。
还有comparator在不分先后的情况下需要返回0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询