Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <algorithm>
- #include <vector>
- #include <set>
- #include <string>
- #include <map>
- #include <queue>
- using namespace std;
- signed main()
- {
- int n, m;
- cin >> n >> m;
- vector<int> v(n), v1(m);
- for(int i = 0; i < n; i++)
- {
- cin >> v[i];
- }
- for(int i = 0; i < m; i++)
- {
- cin >> v1[i];
- }
- vector<pair<pair<int, int>, int>> p;
- int st = 0;
- for(int i = 0; i < n; i++)
- {
- p.push_back({{st, st + v[i]}, -i - 1});
- st += v[i];
- }
- st = 0;
- for(int i = 0; i < m; i++)
- {
- p.push_back({{st, st + v1[i]}, i + 1});
- st += v1[i];
- }
- sort(p.begin(), p.end());
- int r = -1;
- int cnt = 0;
- vector<int> ans1, ans2;
- int ans11 = 0;
- int ans22 = 0;
- for(int i = 0; i < p.size(); i++)
- {
- if(p[i].first.first >= r)
- {
- r = p[i].first.second;
- if(p[i].second < 0)
- {
- ans1.push_back(abs(p[i].second));
- ans11++;
- }
- else{
- ans2.push_back(p[i].second);
- ans22++;
- }
- }
- }
- cout << ans11 << " " << ans22 << endl;
- for(int i = 0; i < ans11; i++)
- {
- cout << ans1[i] << " ";
- }
- cout << endl;
- for(int i = 0; i < ans22; i++)
- {
- cout << ans2[i] << " ";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement