比赛 普及组2016模拟练习3 评测结果 AWWWWWWWWW
题目名称 中考分数 最终得分 10
用户昵称 asd 运行时间 0.005 s
代码语言 C++ 内存使用 0.30 MiB
提交时间 2016-11-15 19:52:22
显示代码纯文本
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int n,m,a[1001][2],problem,ans[1001];
  4. void find();
  5. void readl()
  6. { int i;
  7. FILE * f;
  8. f=fopen("mark.in","r");
  9. fscanf(f,"%d %d",&n,&m);
  10. for(i=1;i<=n;i++)
  11. fscanf(f,"%d",&a[i][0]);
  12. for(i=1;i<=n;i++)
  13. a[i][1]=i;
  14. fscanf(f,"%d",&problem);
  15. fclose(f);
  16. return ;
  17. }
  18.  
  19. void print()
  20. { FILE * f;
  21. f=fopen("mark.out","w");
  22. fprintf(f,"%d",ans[problem]);
  23. fclose(f);
  24. return ;
  25. }
  26.  
  27. int cmp(const void * a,const void * b)
  28. { int * x=(int *)a;
  29. int * y=(int *)b;
  30. if(*x>*y) return -1;
  31. else return 1;
  32. }
  33.  
  34. int main()
  35. { readl();
  36. find();
  37. print();
  38. return 0;
  39. }
  40.  
  41. void find()
  42. {
  43. qsort(a+1,n,sizeof(a[0]),cmp);
  44.  
  45. int i,k=m/n,s=0;
  46.  
  47. ans[a[1][1]]=1;
  48. s++;
  49.  
  50. for(i=2;i<=n;i++)
  51. { s++;
  52. if(a[i][0]==a[i-1][0]){ans[a[i][1]]=ans[a[i-1][1]];continue;}
  53. if(s>k) {s-=k;ans[a[i][1]]=ans[a[i-1][1]]+1;}
  54. else ans[a[i][1]]=ans[a[i-1][1]];
  55. }
  56. return ;
  57. }