Advertisement
lily09290110

求多邊形

Jan 26th, 2015
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int count=0;
  4. int f(const void *a,const void *b){return (*(int *)a-*(int *)b);}
  5.  
  6.  
  7. int search(int arr[40],int fp,int temp)
  8. {
  9.     int i,com=temp,record[fp+1],j,k=0;
  10.     if(fp>=0)
  11.     {
  12.        for(i=fp-1;i>=0;i--)
  13.            {
  14.                if(arr[i]==0);
  15.                else if(arr[i]==temp)
  16.                {
  17.                  arr[i]=0;
  18.                  for(j=0;j<k;j++)
  19.                  {
  20.                      arr[record[j]]=0;
  21.                  }
  22.                  return 1;
  23.                }
  24.                else if(arr[i]<temp)
  25.                {
  26.                 temp-=arr[i];
  27.                 record[k]=i;
  28.                 k++;
  29.                }
  30.            }
  31.        return  1*search(arr,fp-1,com);
  32.     }
  33.     else return -1;
  34. }
  35.  
  36.  
  37. void desire(int arr[40],int fp,double a)
  38. {
  39.     int temp,i;
  40.    while(fp>=0)
  41.    {
  42.        if(arr[fp]==a||arr[fp]==0) fp--;
  43.        else
  44.        {
  45.            temp=a-arr[fp];
  46.            if(search(arr,fp,temp)==-1) {count++;break;}
  47.            else fp--;
  48.        }
  49.    }
  50. }
  51. int main()
  52. {
  53.   int n1,n,m,arr[40],i;
  54.   double a;
  55.   for(scanf("%d",&n1);n1>=1;n1--)
  56.   {
  57.     a=0;
  58.     count=0;
  59.     scanf("%d",&n);
  60.     scanf("%d",&m);
  61.     for(i=0;i<m;i++)
  62.     {
  63.        scanf("%d",&arr[i]);
  64.        a+=arr[i];
  65.     }
  66.     a/=n;
  67.     qsort(arr,m,4,f);
  68.     if(arr[m-1]>a)count++;
  69.     desire(arr,m-1,a);
  70.     (count==0)?printf("1\n"):printf("0\n");
  71.   }
  72.   return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement