Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int iO,iP,iM;
  4. int tab[300][5];
  5. int tab2[300];
  6. int gdzie[300];
  7. int pom[301][301];
  8. int min(int a,int b)
  9. {
  10. if(a==0)return b;
  11. if(b==0) return a;
  12. if(a<b)return a;
  13. else return b;
  14. }
  15.  
  16.  
  17. void f()
  18. {
  19. int znal=0;
  20. int i,j,k,z;
  21.  
  22.  
  23. for(i=1;i<=iP;i++)
  24. for(k=0;k<iP;k++){
  25. if(tab[k][0]==1&&tab2[k]==0)
  26. {
  27. if(i==1){
  28. tab2[k]=1;
  29. pom[tab[k][1]][tab[k][3]]=
  30. min(tab[k][2],pom[tab[k][1]][tab[k][3]-1]);
  31. }
  32. if(tab[k][1]==tab[k+1][1]&&tab[k][0]==tab[k+1][0])
  33. {
  34. if(tab[k][3]+1!=tab[k+1][3])
  35. {int a;
  36. for(a=tab[k][3]+1;a<tab[k+1][3];a++)
  37. pom[tab[k][1]][a]=pom[tab[k][1]][a-1];
  38. }
  39.  
  40. }
  41. if((tab[k+1][1]!=tab[k][1]&&k+1<iP
  42. &&tab[k][0]==tab[k+1][0])||(k==iP-1)||(tab[k][0]!=tab[k+1][0])&&k+1<iP)
  43. {
  44. int d;
  45. for(d=tab[k][3]+1;d<=iM;d++)
  46. pom[tab[k][1]][d]=pom[tab[k][1]][d-1];
  47. }
  48. znal=1;
  49. }
  50. if(tab2[k]==0&&pom[tab[k][0]][iM]!=0)
  51. {
  52. tab2[k]=1;
  53. int nr_osady=tab[k][0];
  54. int gdzie_idziemy=tab[k][1];
  55. int cena=tab[k][3];
  56. int czas=tab[k][2];
  57. int a=0;
  58. while(pom[nr_osady][a]==0){a++;}
  59.  
  60. for(a;a<=iM;a++){
  61. if(a+tab[k][3]>iM){
  62. }
  63. else{
  64.  
  65.  
  66. pom[gdzie_idziemy][a+tab[k][3]]=min(pom[gdzie_idziemy][a-1],pom[nr_osady][a]+czas);
  67. }
  68.  
  69.  
  70. }
  71. }
  72.  
  73. }
  74.  
  75. if(znal==0){
  76. printf("NIE\n");
  77. return;
  78. }
  79. }
  80.  
  81. main()
  82. {
  83. int i,j;
  84. FILE *fp;
  85. fp=fopen("in.txt", "r");
  86. int z;
  87.  
  88. //FILE *out=fopen("out.txt","w");
  89. fscanf(fp,"%d %d %d",&iO,&iP,&iM);
  90. for(i=0;i<iP;i++)
  91. {
  92. for(j=0;j<5;j++){
  93. if(j==4)
  94. tab[i][j]=i+1;
  95. else
  96. fscanf (fp, "%d", &tab[i][j]);
  97.  
  98.  
  99. }
  100. }
  101.  
  102.  
  103. for(i=0;i<iP;i++)
  104. {
  105. for(j=0;j<5;j++)
  106. printf("%d ",tab[i][j]);
  107. printf("\n");
  108. }
  109. f();
  110. for(z=0;z<=iM;z++)
  111.  
  112. {
  113. for(j=0;j<=iO;j++)
  114. printf("%d ",pom[j][z]);
  115. printf("\n");
  116. }
  117.  
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement