#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define endl '\n'
#pragma GCC optimize("O3")
typedef unsigned int uint;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
using namespace std;
void solve() {
ll n , m;
cin >> n >> m;
vector<ll>a(n+1) , b(m+1);
for(int i = 1;i <= n;i++){
cin >> a[i];
}
set<pair<ll,ll>> s;
for(int i = 1;i <= m;i++){
cin >> b[i];
if(i < n)s.insert({b[i] , i});
}
vector<ll>ans;
for(int i = n;i <= m;i++){
s.insert({b[i] , i});
if(i > n){
s.erase({b[i-n] , i-n});
}
bool ok = 1;
ll cur = 0;
for(auto g: s){
cur++;
if(g.second != a[cur] + (i-n)){
ok=0;
}
}
if(ok){
ans.push_back(i - n +1);
}
}cout<<ans.size()<<endl;
for(auto g: ans){
cout<<g<<' ';
}
}
signed main() {
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
cout.tie(NULL);
ll t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}
# | 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... |
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |