제출 #1199198

#제출 시각아이디문제언어결과실행 시간메모리
1199198otariusCard Collection (JOI24_collection)C++20
0 / 100
18 ms584 KiB
#include <bits/stdc++.h> #include <bits/extc++.h> using namespace __gnu_pbds; using namespace std; // #pragma GCC optimize("Ofast") // #pragma GCC optimize ("unroll-loops") // #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #define ff first #define sc second #define pb push_back #define ll long long #define pll pair<ll, ll> #define pii pair<int, int> #define ull unsigned long long #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); mt19937_64 rngl(chrono::steady_clock::now().time_since_epoch().count()); // #define int long long // #define int unsigned long long // #define ordered_set(T) tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update> // #define ordered_multiset(T) tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update> // const ll mod = 1e9 + 7; // const ll mod = 998244353; const ll inf = 1e9; const ll biginf = 1e18; const int maxN = 1e6 + 15; set<pii> dp[21][21]; void solve() { int n, m; cin >> n >> m; int s[n + 1], v[n + 1]; for (int i = 1; i <= n; i++) { cin >> s[i] >> v[i]; dp[i][i].insert({s[i], v[i]}); } for (int len = 2; len <= n; len++) { for (int i = 1; i + len - 1 <= n; i++) { for (int j = i; j <= i + len - 1; j++) { for (pii x : dp[i][j]) { for (pii y : dp[j + 1][i + len - 1]) { dp[i][i + len - 1].insert({max(x.ff, y.ff), max(x.sc, y.sc)}); dp[i][i + len - 1].insert({min(x.ff, y.ff), min(x.sc, y.sc)}); } } } } } // for (pii i : dp[1][n]) { // cout << i.ff << ' ' << i.sc << '\n'; // } for (int i = 1; i <= m; i++) { int x, y; cin >> x >> y; if (dp[1][n].find({x, y}) != dp[1][n].end()) cout << i << ' '; } } int32_t main() { // #ifndef ONLINE_JUDGE // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); // #endif ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t = 1; // cin >> t; while (t--) { solve(); cout << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...