#include <bits/stdc++.h>
#define int long long
#define ll long long
#define endl "\n"
#define pb push_back
#define fastio \
ios_base::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0);
// const int INF = 1e18;
// const int MAX_SIZE = 5e5 + 5;
#define all(x) x.begin(), x.end()
#define allre(x) x.rbegin(), x.rend()
#define vi vector<int>
#define EPS 1e-10
#define vii vector<pair<int, int>>
// #define fr(s, n) for (int i = s; i < n; i++)
#define frj(s, n) for (int j = s; j < n; j++)
#define F first
#define S second
using namespace std;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef vector<vvvi> vvvvi;
typedef pair<int, int> ii;
typedef vector<vii> vvii;
typedef vector<vvii> vvvii;
int zero(int n)
{
int ret = 0;
while (n > 0)
{
n /= 5;
ret += n;
}
return ret;
}
bool comp(pair<pair<int, int>, int> &a, pair<pair<int, int>, int> &b)
{
if (a.F.S == b.F.S)
return a.F.F > b.F.F;
return a.F.S < b.F.S;
}
int gcd(int x, int y)
{
return y == 0 ? x : gcd(y, x % y);
}
int lcm(int a, int b)
{
return (a / gcd(a, b)) * b;
}
bool isprime(int n)
{
if (n < 2)
{
return 0;
}
for (int i = 2; i * i <= n; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
void sieve(int m, int n)
{
vector<bool> pr(n + 1, true);
pr[0] = pr[1] = 0;
for (int i = 2; i * i <= n; i++)
{
if (pr[i])
{
for (int j = i * i; j <= n; j += i)
{
pr[j] = 0;
}
}
}
bool t = false;
int cnt = 0;
for (int i = m; i <= n; i++)
{
if (pr[i])
{
cnt++;
if (cnt % 100 == 1)
{
cout << i << endl;
}
}
}
}
int mod = 1e9 + 7;
int pw(int a, int b, int mod)
{
int res = 1;
while (b > 0)
{
if (b % 2 == 1)
{
res = (res * a) % mod;
}
a = (a * a) % mod;
b /= 2;
}
return res;
}
/*const int sz=105;
int a[sz][sz];
vi g[sz];
bool used[sz],cy=0,color[sz];
int cnt=0;
void dfs(int node){
used[node]=true;
color[node]=true;
for(int i:g[node]){
if(!used[i]){
dfs(i);
}
if(color[i]){
cy=1;
return;
}
}
color[node]=false;
}
const int M = 998244353, N = 500000;
vector<int> f(N+1), ivf(N+1);
int p(int b, int e) {
long long r = 1;
while (e) {
if (e & 1) r = (r * b) % M;
b = (b * b) % M;
e >>= 1;
}
return (int)r;
}
bool frr(int n){
int x=sqrt(n);
if(x*x==n)return 1;
return 0;
}*/
/*bool vis[1005][1005];
intc g[1005][1005],n,m;
int dfs(int i,int j){
vis[i][j]=1;
int ans=g[i][j];
if( i!=0 && g[i-1][j] != 0 && !vis[i-1][j]){
ans+=dfs(i-1,j);
}
if( i!=n-1 && g[i+1][j] != 0 && !vis[i+1][j]){
ans+=dfs(i+1,j);
}
if( j!=0 && g[i][j-1] != 0 && !vis[i][j-1]){
ans+=dfs(i,j-1);
}
if( j!=m-1 && g[i][j+1] != 0 && !vis[i][j+1]){
ans+=dfs(i,j+1);
}
return ans;
}*/
/*const int MX=105;
int par[MX][MX];
int sz[MX] ;
int getRep(int a,int x){
if(par[a][x]!=x){
par[a][x] = getRep(a, par[a][x]);
}
return par[a][x];
}
bool unite(int c ,int a,int b){
a=getRep(c,a);
b=getRep(c,b);
if(a==b){return false;}
if(sz[a]>sz[b])swap(a,b);
if(a!=b){
par[c][a]=b;
}
}
const int N=200005;
int a[N],t[N*4];
void build(int node,int l,int r){
if(l==r){
t[node]=a[l];
return;
}
int mid=(l+r)/2;
build(node*2,l,mid);
build(node*2+1,mid+1,r);
t[node]=min(t[node*2],t[node*2+1]);
}
int get (int node,int l,int r,int ql,int qr){
if(qr<l || r<ql){
return 1e9;
}
if(ql<= l && r<=qr){
return t[node];
}
int mid=(l+r)/2;
int res1=get(node*2,l,mid,ql,qr);
int res2=get(node*2+1,mid+1,r,ql,qr);
return min(res1,res2);
}
void update(int node,int l,int r,int pos,int val){
if(l==r){
t[node]=val;
return;
}
int mid=(l+r)/2;
if(pos<=mid){
update(node*2,l,mid,pos ,val);
}
else{
update(node*2+1,mid+1,r,pos ,val);
}
t[node]=min(t[node*2],t[node*2+1]);
}*/
int merge(vi &v, int low, int mid, int h)
{
vi temp;
int l = low;
int r = mid + 1;
int cnt = 0;
while (l <= mid && r <= h)
{
if (v[l] <= v[r])
{
temp.pb(v[l]);
l++;
}
else
{
temp.pb(v[r]);
cnt += (mid - l + 1);
r++;
}
}
while (l <= mid)
{
temp.pb(v[l]);
l++;
}
while (r <= h)
{
temp.pb(v[r]);
r++;
}
for (int i = low; i <= h; i++)
{
v[i] = temp[i - low];
}
return cnt;
}
int mergeSort(vi &v, int low, int high)
{
int cnt = 0;
if (low >= high)
return cnt;
int mid = (low + high) / 2;
cnt += mergeSort(v, low, mid);
cnt += mergeSort(v, mid + 1, high);
cnt += merge(v, low, mid, high);
return cnt;
}
void guliyev()
{
int n, m;
cin >> n >> m;
vi v(n);
vi v2(m);
for (int i = 0; i < n; ++i)
{
cin >> v[i];
}
for (int i = 0; i < m; ++i)
{
cin >> v2[i];
}
for (int i = 0; i < m; ++i)
{
int mx = v2[i];
int cnt = 0;
for (int s = 0; s < n; ++s)
{
int ans = 0;
for (int e = s; e < n; ++e)
{
ans = max(ans, v[e]);
if (ans <= mx)
{
cnt++;
}
else
{
break;
}
}
}
cout << cnt << '\n';
}
}
signed main()
{
fastio;
int u = 1;
// cin >> u;
while (u--)
{
guliyev();
// cout<<endl;
}
return 0;
}
// By Husu
# | 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... |