# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
223105 | MKopchev | Lottery (CEOI18_lot) | C++14 | 1150 ms | 8440 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
const int nmax=1e4+42,qmax=1e2+5;
int n,l;
int inp[nmax];
pair<int/*k*/,int/*id*/> queries[nmax];
int where_begins[nmax];
int pref[nmax];
int output[qmax][nmax];
int original[nmax];
int q;
int main()
{
scanf("%i%i",&n,&l);
for(int i=1;i<=n;i++)scanf("%i",&inp[i]);
scanf("%i",&q);
for(int i=1;i<=q;i++)
{
scanf("%i",&queries[i].first);
queries[i].second=i;
original[i]=queries[i].first;
}
sort(queries+1,queries+q+1);
for(int i=1;i<=n;i++)
where_begins[i]=lower_bound(queries+1,queries+q+1,make_pair(i,0))-queries;
for(int diff=1;diff<=n;diff++)
{
for(int i=1;i<=n;i++)pref[i]=0;
for(int s=1;s+diff<=n;s++)
{
int t=s+diff;
if(inp[s]==inp[t])continue;
//common of [0, l-1], [-inf, s-1], [t-n+l-1,+inf]
int i_low=max(0,t-n+l-1),i_high=min(s-1,l-1);
//all [s-i, t-i] for i_low<=i<=i_high gain 1
pref[s-i_high]++;
pref[s-i_low+1]--;
//cout<<s<<" "<<t<<" "<<i_low<<" "<<i_high<<endl;
}
for(int i=1;i<=n-l+1;i++)
pref[i]=pref[i]+pref[i-1];
for(int s=1;s+diff<=n-l+1;s++)
{
int t=s+diff;
//difference between s and t is pref[s]
int current=pref[s];
//cout<<"distance between "<<s<<" and "<<t<<" is "<<current<<endl;
output[where_begins[current]][s]++;
output[where_begins[current]][t]++;
}
}
for(int i=1;i<=q;i++)
for(int j=1;j<=n;j++)
output[i][j]+=output[i-1][j];
for(int i=1;i<=q;i++)
{
for(int j=1;j<=n-l+1;j++)
{
if(j!=1)printf(" ");
printf("%i",output[where_begins[original[i]]][j]);
}
printf("\n");
}
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |