Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- #include<map>
- #include<algorithm>
- using namespace std;
- int main()
- {
- int n,h,w,max,min_cor;
- cin » n;
- int k;
- k = 0;
- max= 0;min_m=0;// max из всех минимальных в паре
- vector<int> Box_w(n);
- vector<int>Box_h(n);
- vector<int>Box_max(n);
- vector<int>Box_min(n);
- map<int, vector<int» Max; //сопоставление каждому максимуму в
- индексов,
- map<int,vector<int>> Min;// сопоставление минимуму в паре индекса
- for(int i = 0; i < n; i++)
- {
- cin » w » h;
- Box_w[i] = w;
- Box_h[i] = h;
- Box_max[i] = max(w, h);
- Max[Box_max[i]].push_back(i);
- Box_min[i] = min(w, h);
- Min[Box_min[i]].push_back(I);
- if (max < Box_max[i])// изем самое большое число
- max=Box_max[i];
- If(min<Box_min[i])// самое большое среди минимальных
- min=Box_min[i];
- }
- for (int i = 0; i < n; i++)
- {
- if(Box_max[i]==Box_min[i])
- {
- if (min==Box_max[i])// если в паре числа равны и совпадают с максимальным чтслом из всех минимумов
- {
- If(sizeof(Min[Box_max[i]])==1)// если не существует пар , у которых минимум больше нашего числа
- k++;
- else// если такие пары есть, то смотрим будет ли максимум в этой паре больше максимума в i-ой
- {int count_rigth=0;
- for(auto s: Min[Box_max[i]])
- {if(Box_max[s]>Box_max[i])
- count_rigth++
- }
- if(count_rigth==0)
- k++;
- }
- }
- }
- else// если не равны значения в паре
- {
- if(Box_max[i]==max)// если максимум в паре равен максимум среди всех чисел
- {
- if(sizeof(Max[Box_max[i]]])==1)// если больше нет пар с таким максимумом
- k++;
- else// если такие пары есть, то смотрим что с минимумом
- { int count=0;
- for(auto s:Max[Box_max[i]])
- {
- if (Box_min[i]<Box_min[s])
- count++;
- }
- if (count==0)
- k++;
- }
- }
- else/* если максимум в паре меньше максимума*/
- {
- if (min==Box_min[i])// тоже самое что и в случае равных чисесл в одной паре
- {
- If(sizeof(Min[Box_min[i]])==1)
- k++;
- else
- {int count_rigth=0;
- for(auto s: Min[Box_min[i]])
- {if(Box_min[s]>Box_min[i])
- count_rigth++
- }
- if(count_rigth==0)
- k++;
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement