# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
888669 | vjudge1 | Passport (JOI23_passport) | C++17 | 423 ms | 1048576 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define ar array
#define pb push_back
#define ln '\n'
#define int long long
using i64 = long long;
template <class F, class _S>
bool chmin(F &u, const _S &v){
bool flag = false;
if ( u > v ){
u = v; flag |= true;
}
return flag;
}
template <class F, class _S>
bool chmax(F &u, const _S &v){
bool flag = false;
if ( u < v ){
u = v; flag |= true;
}
return flag;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
vector <int> L(n), R(n);
for ( int i = 0; i < n; i++ ){
cin >> L[i] >> R[i];
--L[i], --R[i];
}
int qq; cin >> qq;
while ( qq-- ){
int s; cin >> s;
--s;
const int inf = 1e15;
vector <vector<int>> dp(n, vector <int> (n, -1));
dp[L[s]][R[s]] = 1;
auto dfs = [&](auto dfs, int l, int r) -> int{
if ( l > r ){
return inf;
}
int &ret = dp[l][r];
if ( dp[l][r] != -1 ){
return ret;
} ret = inf;
for ( int i = l; i <= r; i++ ){
bool ok = false, fl = false;
for ( int j = i; j <= r; j++ ){
if ( R[j] >= r ) ok = true;
if ( L[j] <= l ) fl = true;
if ( (ok & fl) && (i != l || j != r) ){
auto flag = chmin(ret, dfs(dfs, i, j) + 1);
}
}
}
return ret;
};
int ans = dfs(dfs, 0, n - 1);
if ( ans == inf ){
ans = -1;
}
cout << ans << ln;
}
cout << '\n';
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |