Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Gigel a primit cadou o cutie de betisoare. Betisoarele au diferite lungimi.
- Gigel crea sa imparta betele in II drupe astfel incat betele dintr-un grup puse unele in continuarea celelalte
- sa formeze o linie a carei lungime sa fie cat cea mai apropiata de linia formata dn betisoarele din celalalt grup.
- Lungimea liniilor trebuie sa fie egala cu suma lungimilor betelor.
- Sa se stabileasca Lungimea celor doua linii formate din betele asezate in II grupe astfel incat diferenta
- dintre lungimea liniei formate din betele din primul grup si lungimea liniilor formate din al II-lea grup sa fie minima.
- */
- #include <iostream>
- #include <fstream>
- using namespace std;
- const int MaxSize=100003;
- ifstream f("gigel.text");
- int n, s, i, j;
- int a[1002], dp[MaxSize];
- void Read()
- {
- f>>n;
- for(i=1; i<=n; i++)
- {
- f>>a[i];
- s+=a[i];
- }
- }
- void Solve()
- {
- dp[0]=1;
- for(i=1; i<=n; i++)
- for(j=s/2-a[i]; j>=0; j--)
- if(dp[j]==1)
- dp[j+a[i]]=1;
- }
- int main()
- {
- Read();
- Solve();
- for(i=s/2; i>=0; i--)
- if(dp[i]==1)
- {
- cout<<i<<" "<<s-i<<endl;break;
- }
- return 0;
- }
- /* gigel.text */
- 7
- 28
- 7
- 11
- 8
- 9
- 7
- 27
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement