Advertisement
jovanovski

Предизвик 3

Apr 7th, 2012
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class Kutija{
  6. private:
  7. int x,y,z;
  8. public:
  9.  
  10. Kutija(int _x=0, int _y=0, int _z=0){
  11. x=_x;
  12. y=_y;
  13. z=_z;
  14. }
  15.  
  16. bool operator<(Kutija &k){
  17. if (x<k.x && y<k.y && z<k.z) return true;
  18. if (x<k.x && y<k.z && z<k.y) return true;
  19. if (x<k.y && y<k.x && z<k.z) return true;
  20. if (x<k.y && y<k.z && z<k.x) return true;
  21. if (x<k.z && y<k.y && z<k.x) return true;
  22. if (x<k.z && y<k.x && z<k.y) return true;
  23. return false;
  24. }
  25.  
  26. };
  27. //Redenje na kutii vo domen i kodomen, kako realciski mnozestva
  28. int domen[100];
  29. int kodomen[100];
  30. int kombinacii=0;
  31. void presmetka(Kutija *niza, int n){
  32.     for(int i=0;i<n;i++){
  33.         for(int j=0;j<n;j++){
  34.             if(i!=j){
  35.                 if(niza[i]<niza[j]){
  36.                     domen[kombinacii] = i+1;
  37.                     kodomen[kombinacii] = j+1;
  38.                     kombinacii++;
  39.                 }
  40.             }
  41.         }
  42.     }
  43. }
  44. int used[100];
  45.  
  46.  
  47. void cistiused(){
  48. for(int i=0;i<100;i++){
  49. used[i]=0;
  50. }
  51. }
  52. void printused(int br){
  53. for(int i=0;i<br;i++){
  54. cout<<used[i]<<endl;
  55. }
  56. }
  57.  
  58. int relacii(int kodo, int br){
  59.     cout<<"Realcii primi kodo: "<<kodo<<endl;
  60. int total=0;
  61.         for(int i=0;i<kombinacii;i++){
  62.             if(domen[i]==kodo && used[i]!=1){
  63.             total++;
  64.             cout<<"Kutija "<<domen[i]<<" mi odgovara"<<endl;
  65.             used[i] = 1;
  66.             return total+relacii(kodomen[i],br);
  67.             }
  68.  
  69.         }
  70.  
  71.     total=1;
  72.     return 0;
  73.     }
  74.  
  75. int max(int *niza, int j){
  76. int m=0;
  77. for(int i=0;i<j;i++){
  78. if(niza[i]>m) m=niza[i];
  79. }
  80. return m;
  81. }
  82.  
  83. int main(){
  84. int brnakutii = 6;
  85. cistiused();
  86. Kutija a(5,5,5);
  87. Kutija b(4,4,4);
  88. Kutija c(3,3,3);
  89. Kutija d(2,2,2);
  90. Kutija e(1,1,1);
  91. Kutija f(0,0,0);
  92. //Kutija a(3,1,4);
  93. //Kutija b(5,2,1);
  94. //Kutija c(3,6,8);
  95. //Kutija d(5,2,4);
  96. //Kutija e(5,1,3);
  97. Kutija niza[brnakutii-1];
  98. niza[0]=a;
  99. niza[1]=b;
  100. niza[2]=c;
  101. niza[3]=d;
  102. niza[4]=e;
  103. niza[5]=f;
  104. presmetka(niza, brnakutii);
  105. int maxkutii=0;
  106. for(int i=0;i<kombinacii;i++){
  107. int segasenbrojac[100];
  108.     cout<<"-----------------------------"<<endl;
  109.     cout<<"Povikuvam so kodomen: "<<kodomen[i]<<" i domen "<<domen[i]<<endl;
  110.     int j=0;
  111.     for(j=0;j<kombinacii;j++){
  112.     segasenbrojac[j] = relacii(kodomen[i],brnakutii);
  113.     }
  114.     cout<<"Dobiv odgovor: "<<max(segasenbrojac, j)<<endl;
  115.     j=0;
  116.     if(maxkutii<max(segasenbrojac, j)) {
  117.     cout<<"Mi odgovara maks, i go postavuvam"<<endl;
  118.     maxkutii=max(segasenbrojac, j);
  119.     }
  120.     cistiused();
  121. }
  122. cout<<"Maksimum kutii edna vo druga moze da se stavat: "<<maxkutii<<endl;
  123. return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement