제출 #1206458

#제출 시각아이디문제언어결과실행 시간메모리
1206458asli_bgLottery (CEOI18_lot)C++20
20 / 100
771 ms6472 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #define int long long typedef pair<int,int> pii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<bool> vb; typedef long long ll; typedef pair<ll,ll> pll; typedef vector<pll> vll; typedef tree<pii,null_type,less<pii>,rb_tree_tag, tree_order_statistics_node_update> oset; #define fi first #define se second #define pb push_back #define pf push_front #define mid (l+r)/2 #define all(x) x.begin(),x.end() #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define sp <<" "<< #define DEBUG(x) cout<<(#x) sp x<<endl #define carp(a,b) (((a%MOD)*(b%MOD))%MOD) #define topla(a,b) (((a%MOD)+(b%MOD))%MOD) const ll INF=1e18; const int MAXN=1e5+5; const int MAXK=30; const int MOD=1e9+7; map<int,int> pref[MAXN]; int ind[MAXN]; bool mm(pii a,pii b){ return a.se<b.se; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,l; cin>>n>>l; vi a(n+1); FORE(i,1,n+1) cin>>a[i]; int q; cin>>q; vii qq; vi vec; FOR(i,q){ int k; cin>>k; qq.pb({k,i}); vec.pb(k); } sort(all(qq)); sort(all(vec)); int deg; for(int i=l;i>=0;i--){ if(!vec.empty() and i==vec.back()){ deg=i; vec.pop_back(); } ind[i]=deg; } int p1,p2; FORE(j,2,n){ if(j+l-1>n) break; p1=1; p2=j; int say=0; FOR(i,l){ if(a[p1+i]!=a[p2+i]) say++; } pref[p1][ind[say]]++; pref[p2][ind[say]]++; while(p1+l-1<=n and p2+l-1<=n){ if(a[p1]!=a[p2]) say--; p1++;p2++; if(p1+l-1>n or p2+l-1>n) break; if(a[p1+l-1]!=a[p2+l-1]) say++; pref[p1][ind[say]]++; pref[p2][ind[say]]++; } } FORE(i,1,n+1){ int once=0; for(auto el:pref[i]){ pref[i][el.fi]+=once; once=pref[i][el.fi]; } } sort(all(qq),mm); FOR(i,q){ int k=qq[i].fi; FORE(i,1,n-l+2){ cout<<pref[i][k]<<' '; } cout<<endl; } }
#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...