Submission #1183073

#TimeUsernameProblemLanguageResultExecution timeMemory
1183073kayumov_muhammadMatching (CEOI11_mat)C++20
0 / 100
2096 ms12784 KiB
#include <bits/stdc++.h>

#ifdef LOCAL
#include "debug/debug.hpp"
#else
#define print(...)
#endif

using ll = long long;
using ld = long double;
using ull = unsigned long long;
#define str string

#define all(v) v.begin(), v.end()
#define fi first
#define se second
#define ent cout << "\n";
#define sz(v) ll(v.size())

using namespace std;

const long long MOD = 1e9 + 7, inf = 1e18;

void solve() {
    ll n, m;
    cin >> n >> m;

    ll a[n + 17];
    ll a2[n + 17];

    for (ll i = 1; i <= n; i++) {
        cin >> a2[i];
        a[a2[i]] = i;
    }

    ll b[m + 17];

    for (ll i = 1; i <= m; i++) {
        cin >> b[i];
    }
    vector<ll> ans;
    for (ll i = 1; i + n - 1 <= m; i++) {
        ll ok = 1;

        for (ll j = i; j - i + 2 <= n; j++) {
            if (a[j - i + 1] < a[j - i + 2] && b[j] > b[j + 1]) {
                ok = 0;
            }
            if (a[j - i + 1] > a[j - i + 2] && b[j] < b[j + 1]) {
                ok = 0;
            }
        }

        if (ok) {
            ans.push_back(i);
        }
    }

    cout << sz(ans) << '\n';

    for (auto c : ans) {
        cout << c << ' ';
    }
    ent;
}

int32_t main() {
#ifdef ONLINE_JUDGE
    // freopen("input.txt","r",stdin);
    // freopen("output.txt","w",stdout);
#endif
    ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);

    ll ttest = 1;
    // cin >> ttest;

    for (ll test_number = 1; test_number <= ttest; test_number++) {
        solve();
    }

    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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...