Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- class jedi {
- public:
- string name;
- int x, y, z;
- bool operator > (const jedi &A) const {
- return ((this -> x >= A.x) + (this -> y >= A.y) + (this -> z >= A.z)) > 1;
- }
- };
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- int N;
- cin >> N;
- vector < vector < bool > > a(N + 1, vector < bool >(N + 1));
- vector < jedi > v(N + 1);
- for(int i = 1; i <= N; ++i)
- cin >> v[i].name >> v[i].x >> v[i].y >> v[i].z;
- for(int i = 1; i <= N; ++i)
- for(int j = 1; j <= N; ++j)
- if(v[i] > v[j])
- a[i][j] = true;
- for(int k = 1; k <= N; ++k)
- for(int i = 1; i <= N; ++i)
- for(int j = 1; j <= N; ++j)
- a[i][j] = a[i][j] | (a[i][k] & a[k][j]);
- for(int i = 1; i <= N; ++i) {
- bool flag = true;
- for(int j = 1; j <= N && flag; ++j)
- flag &= a[i][j];
- if(flag)
- cout << v[i].name << '\n';
- }
- }
Add Comment
Please, Sign In to add comment