Advertisement
a53

rgb

a53
Aug 23rd, 2022
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. // https://www.pbinfo.ro/probleme/4137/rgb
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. #define ll long long
  5. #define ull unsigned long long
  6. #define mod 1000000007
  7.  
  8. ifstream fin("rgb.in");
  9. ofstream fout("rgb.out");
  10.  
  11. vector<int> fight(vector<int> m, vector<int> s, vector<int> o) {
  12. vector<int> p(m.size());
  13. int si=0, oi=0;
  14. for (int i=0; i<m.size(); ++i) {
  15. if (i>0) p[i] += p[i-1] + 1;
  16. while (2*m[i] > s[si] && si<s.size()) {
  17. ++si; ++p[i];
  18. }
  19. while (m[i] > 2*o[oi] && oi<o.size()) {
  20. ++oi; ++p[i];
  21. }
  22. }
  23. return p;
  24. }
  25.  
  26. int main() {
  27. int c, r, g, b;
  28. fin>>c>>r>>g>>b;
  29.  
  30. vector<int> er(r), eg(g), eb(b);
  31. for (int i=0; i<r; ++i) fin>>er[i];
  32. for (int i=0; i<g; ++i) fin>>eg[i];
  33. for (int i=0; i<b; ++i) fin>>eb[i];
  34.  
  35. vector<int> fr=fight(er, eg, eb), fg=fight(eg, eb, er), fb= fight(eb, er, eg);
  36.  
  37. if (c == 1) {
  38. pair<int,int> mx{0,0};
  39. for (int i=0; i<r; ++i) {
  40. if (fr[i] > mx.first || (fr[i] == mx.first && er[i]<mx.second)) mx={fr[i], er[i]};
  41. }
  42. for (int i=0; i<g; ++i) {
  43. if (fg[i] > mx.first || (fg[i] == mx.first && eg[i]<mx.second)) mx={fg[i], eg[i]};
  44. }
  45. for (int i=0; i<b; ++i) {
  46. if (fb[i] > mx.first || (fb[i] == mx.first && eb[i]<mx.second)) mx={fb[i], eb[i]};
  47. }
  48. fout<<mx.second;
  49. } else {
  50. for (auto v : fr) fout<<v<<" ";
  51. fout<<endl;
  52. for (auto v : fg) fout<<v<<" ";
  53. fout<<endl;
  54. for (auto v : fb) fout<<v<<" ";
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement