比赛 平凡的题目 评测结果 WWWWWTTTTW
题目名称 平凡的题面 最终得分 0
用户昵称 小明 运行时间 4.016 s
代码语言 C++ 内存使用 1.36 MiB
提交时间 2015-11-03 11:59:29
显示代码纯文本
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include <algorithm>
  4. #include <cstdio>
  5. #include <cstring>
  6. #include <cmath>
  7. using namespace std;
  8. int main ()
  9. {
  10. freopen("bg.in","r",stdin);
  11. freopen("bg.out","w",stdout);
  12. int a,c[100000],d[100000],e[100000],f[100000],g,z=0,y=1,x=100000,ans=0,i,j,k,m,n,w=100000;
  13. scanf("%d%d",&n,&m);
  14. for(i=1;i<=n;i++)
  15. {
  16. scanf("%d",&a);
  17. f[a]++;
  18. }
  19. for(i=1;i<=m;i++)
  20. {
  21. scanf("%d%d",&c[i],&d[i]);
  22. for(j=c[i];j<=d[i];j++)
  23. e[j]++;
  24. if(x>c[i])
  25. x=c[i];
  26. if(z<d[i])
  27. z=d[i];
  28. }
  29. for(i=x;i<=z;i++)
  30. if(f[i]==0)
  31. e[i]=0;
  32. while(y!=0)
  33. {
  34. y=0;
  35. w=100000;
  36. for(i=x;i<=z;i++)
  37. {
  38. if(e[i]!=0)
  39. if(w>e[i])
  40. w=e[i];
  41. if(y<e[i])
  42. y=e[i];
  43. }
  44. for(i=x;i<=z;i++)
  45. if((e[i]==w)&&(f[i]>=1))
  46. {
  47. g=f[i];
  48. for(j=1;j<=m;j++)
  49. if((c[j]<=i)&&(i<=d[j]))
  50. {
  51. for(k=c[j];k<=d[j];k++)
  52. {
  53. if(e[k]>0)
  54. e[k]--;
  55. if(e[k]==0)
  56. f[k]=0;
  57. }
  58. }
  59. ans+=min(w,g);
  60. f[i]=0;
  61. }
  62. }
  63. printf("%d",ans);
  64. return 0;
  65. }