제출 #1199981

#제출 시각아이디문제언어결과실행 시간메모리
1199981user736482Lottery (CEOI18_lot)C++17
35 / 100
518 ms1056 KiB
#include<bits/stdc++.h> #pragma GCC target("avx2") #pragma GCC optimize("Ofast") #define ll int #define pb push_back #define ff first #define ss second using namespace std; int n,q,a,k,l; vector<int>v,poz;//duze jedno do usuniecia vector<pair<int,int>>pom; int pod[10007]; int ans[107][10007]; int licz[107][10007]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>l; for(int i=0;i<n;i++){ cin>>a; v.push_back(a); } cin>>q; for(int i=0;i<q;i++){ cin>>k; k=l-k; pom.push_back({k,i}); } sort(pom.begin(),pom.end()); for(int i=0;i<l-1;i++){ for(int j=i+1;j<n;j++){ if(v[i]==v[j])pod[j-i]++; } } for(int i=l-1;i<n;i++){ if(i!=l-1){ i=i-l; for(int j=i+1;j<n;j++){ if(v[i]==v[j])pod[j-i]--; } i=i+l;} for(int j=i+1;j<n;j++){ if(v[i]==v[j])pod[j-i]++; } vector<ll>tb[10007]; for(int j=i+1;j<n;j++){ tb[pod[-i+j]].pb(i-l+1); tb[pod[j-i]].pb(j-l+1); }int ak=0; for(int i=pom[0].ff;i<10007;i++){ while(ak<pom.size()-1 && pom[ak+1].ff<=i)ak++; for(int j : tb[i])licz[ak][j]++; } } for(int i=q-1;i>=0;i--){ for(int j=0;j<n-l+1;j++){ if(i+1<q) licz[i][j]+=licz[i+1][j]; ans[pom[i].ss][j]=licz[i][j]; // cout<<licz[i][j]<<" "; } cout<<"\n"; } for(int i=0;i<q;i++){ for(int j=0;j<n-l+1;j++){ cout<<licz[i][j]<<" "; } cout<<"\n"; } }
#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...