记录编号 8622 评测结果 AAAAAAAAAA
题目名称 [POI 1997] 阶梯教室设备利用 最终得分 100
用户昵称 GravatarBYVoid 是否通过 通过
代码语言 C++ 运行时间 1.607 s
提交时间 2008-11-28 19:05:59 内存使用 0.37 MiB
显示代码纯文本
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX=10001;
  7.  
  8. struct segment
  9. {
  10. int l,r;
  11. };
  12.  
  13. segment S[MAX];
  14. int N,Ans;
  15. int F[MAX];
  16.  
  17. int cmp(const void *a,const void *b)
  18. {
  19. return ((segment *)a)->r - ((segment *)b)->r;
  20. }
  21.  
  22. void init()
  23. {
  24. int i;
  25. freopen("rez.in","r",stdin);
  26. freopen("rez.out","w",stdout);
  27. scanf("%d",&N);
  28. for (i=1;i<=N;i++)
  29. {
  30. scanf("%d%d",&S[i].l,&S[i].r);
  31. }
  32. qsort(S+1,N,sizeof(S[0]),cmp);
  33. }
  34.  
  35. void dynamic()
  36. {
  37. int i,j;
  38. for (i=1;i<=N;i++)
  39. {
  40. for (j=N-1;j>=1;j--)
  41. {
  42. if (S[j].r<=S[i].l)
  43. {
  44. if (F[j]>F[i])
  45. {
  46. F[i]=F[j];
  47. }
  48. }
  49. }
  50. F[i] += S[i].r - S[i].l;
  51. if (F[i]>Ans)
  52. Ans=F[i];
  53. }
  54. }
  55.  
  56. int main()
  57. {
  58. init();
  59. dynamic();
  60. cout << Ans;
  61. return 0;
  62. }