记录编号 111853 评测结果 AWAAWAATTT
题目名称 [USACO 2.1] 荷斯坦奶牛 最终得分 50
用户昵称 Gravatarok 是否通过 未通过
代码语言 C++ 运行时间 4.156 s
提交时间 2014-07-14 11:29:00 内存使用 0.32 MiB
显示代码纯文本
  1. #include <fstream>
  2. using namespace std;
  3. ifstream input("holstein.in");
  4. ofstream output("holstein.out");
  5. int i,j,n,a[26]={0},m,b[26][26]={0},z1=1000,z2=10000000,c[26]={0};
  6. bool z3[26]={0},bian[26]={0};
  7. int niu(int x,int y)
  8. {
  9. int k,l,mmm=1;
  10. for(k=1;k<=n;k++)
  11. {
  12. if(c[k]<a[k]) mmm=0;
  13. }
  14. if(x<z1&&mmm)
  15. {
  16. z1=x;
  17. z2=y;
  18. for(i=1;i<=m;i++)
  19. {
  20. z3[i]=bian[i];
  21. }
  22. }
  23. if(x=z1&&y<=z2&&mmm)
  24. {
  25. z2=y;
  26. for(i=1;i<=m;i++)
  27. {
  28. z3[i]=bian[i];
  29. }
  30. }
  31. if(x<=z1)
  32. {
  33. for(k=m;k>=1;k--)
  34. {
  35. if(bian[k]==0)
  36. {
  37. bian[k]=1;
  38. for(l=1;l<=n;l++)
  39. {
  40. c[l]+=b[k][l];
  41. y+=b[k][l];
  42. }
  43. niu(x+1,y);
  44. bian[k]=0;
  45. for(l=1;l<=n;l++)
  46. {
  47. c[l]-=b[k][l];
  48. y-=b[k][l];
  49. }
  50. }
  51. }
  52. }
  53. return 0;
  54. }
  55. int main()
  56. {
  57. input>>n;
  58. for(i=1;i<=n;i++) input>>a[i];
  59. input>>m;
  60. for(i=1;i<=m;i++) for(j=1;j<=n;j++) input>>b[i][j];
  61. niu(0,0);
  62. z1=0;
  63. for(i=1;i<=m;i++)
  64. {
  65. if(z3[i]) z1++;
  66. }
  67. output<<z1;
  68. for(i=1;i<=m;i++)
  69. {
  70. if(z3[i]) output<<' '<<i;
  71. }
  72. output<<endl;
  73. input.close();
  74. output.close();
  75. return 0;
  76. }