Submission #1186562

#TimeUsernameProblemLanguageResultExecution timeMemory
1186562callmehuseynPilot (NOI19_pilot)C++20
40 / 100
1095 ms1864 KiB
#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 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...