Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- struct Adat
- {
- vector<int> kezd;
- vector<int> veg;
- };
- int main()
- {
- int n, m;
- cin >> n >> m;
- int hossz = n + m;
- Adat a;
- int MAX = 0;
- for (int i = 0; i < hossz; i++)
- {
- int kezd, veg;
- cin >> kezd >> veg;
- a.kezd.push_back(kezd);
- a.veg.push_back(veg);
- if(MAX < veg)
- {
- MAX = veg;
- }
- }
- vector<vector<int>> vec;
- vec.resize(hossz);
- vector<pair<int,int>> result;
- result.resize(hossz);
- for (int i = 0; i < hossz; i++)
- {
- vec[i].resize(MAX);
- for(int j = 0; j < MAX; j++)
- {
- if(j >= a.kezd[i]-1 && j < a.veg[i])
- vec[i][j] = 1;
- else if(vec[i][j] != 1)
- vec[i][j] = 0;
- //cout << vec[i][j] << ' ';
- }
- //cout << endl;
- }
- int db = 0;
- int veg = 0;
- int k = 0;
- for (int i = 0; i <= MAX; i++)
- {
- int sum = 0;
- for (int j = 0; j < hossz; j++)
- {
- sum += vec[j][i];
- }
- if(sum == 1)
- {
- db++;
- veg = i + 1;
- result[k].first = veg - db + 1;
- result[k].second = veg;
- }
- else
- {
- //cout << veg-db+1 << " " << veg << endl;
- db = 0;
- veg = 0;
- k++;
- }
- }
- int meret = 0;
- for (int i = 0; i <= result.size(); i++)
- {
- if(result[i].first != 0 && result[i].second != 0)
- {
- meret++;
- }
- }
- cout << meret << endl;
- for (int i = 0; i < k; i++)
- {
- if(result[i].first != 0 && result[i].second != 0)
- {
- cout << result[i].first << " " << result[i].second << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement