Advertisement
Five_NT

[C++]Jocul cu betele

Nov 14th, 2013
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. /*
  2.     Gigel a primit cadou o cutie de betisoare. Betisoarele au diferite lungimi.
  3. Gigel crea sa imparta betele in II drupe astfel incat betele dintr-un grup puse unele in continuarea celelalte
  4. sa formeze o linie a carei lungime sa fie cat cea mai apropiata de linia formata dn betisoarele din celalalt grup.
  5. Lungimea liniilor trebuie sa fie egala cu suma lungimilor betelor.
  6.     Sa se stabileasca Lungimea celor doua linii formate din betele asezate in II grupe astfel incat diferenta
  7. dintre lungimea liniei formate din betele din primul grup si lungimea liniilor formate din al II-lea grup sa fie minima.
  8. */
  9. #include <iostream>
  10. #include <fstream>
  11. using namespace std;
  12. const int MaxSize=100003;
  13.  
  14. ifstream f("gigel.text");
  15.  
  16. int n, s, i, j;
  17. int a[1002], dp[MaxSize];
  18.  
  19. void Read()
  20. {
  21.     f>>n;
  22.     for(i=1; i<=n; i++)
  23.     {
  24.         f>>a[i];
  25.         s+=a[i];
  26.     }
  27. }
  28.  
  29. void Solve()
  30. {
  31.     dp[0]=1;
  32.     for(i=1; i<=n; i++)
  33.         for(j=s/2-a[i]; j>=0; j--)
  34.             if(dp[j]==1)
  35.                 dp[j+a[i]]=1;
  36. }
  37.  
  38. int main()
  39. {
  40.     Read();
  41.     Solve();
  42.     for(i=s/2; i>=0; i--)
  43.         if(dp[i]==1)
  44.         {
  45.             cout<<i<<" "<<s-i<<endl;break;
  46.         }
  47.     return 0;
  48. }
  49.  
  50. /* gigel.text */
  51. 7
  52. 28
  53. 7
  54. 11
  55. 8
  56. 9
  57. 7
  58. 27
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement