Doing Homework again

来源:互联网 发布:java 集合有哪些 编辑:程序博客网 时间:2024/06/07 09:45


http://acm.hdu.edu.cn/showproblem.php?pid=1789

#include<stdio.h>
#include<string.h>
int main()
{
 int i,j,t,k,n,ans,a[1100],b[1100],c[1100];
 scanf("%d",&t);
 while(t--)
 {
  scanf("%d",&n);
  for(i=0;i<n;i++)
   scanf("%d",a+i);
  for(j=0;j<n;j++)
   scanf("%d",b+j);
  for(i=0;i<n-1;i++)
   for(j=0;j<n-1-i;j++)
    if(b[j]<b[j+1] || b[j]==b[j+1] && a[j]>a[j+1])
    {
     k=a[j];
     a[j]=a[j+1];
     a[j+1]=k;
     k=b[j];
     b[j]=b[j+1];
     b[j+1]=k;
    }
  memset(c,0,sizeof(c));
  ans=0;
  for(i=0;i<n;i++)
  {
   for(j=a[i];j>=1;j--)
   {
    if(!c[j])
    {
     c[j]=1;
     break;
    }
   }
   if(j==0)
    ans+=b[i];
  }
  printf("%d\n",ans);
 }
 return 0;
}

0 0