This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,l,sum;
int slight[300000],elight[300000];
int group[300000][2],gcnt;
int allight[300000][2],acnt;
int main()
{
scanf("%d %d",&n, &l);
int i,j;
for(i = 1 ; i <= n ; i++){
scanf("%d",&slight[i]);
slight[i]-=l;
}
sort(slight+1,slight+1+n);
for(i = 1 ; i <= n ; i++)elight[i]=slight[i]+l*2;
group[gcnt][0]=1;
for(i = 1 ; i <= n ; i++){
if(elight[i]<slight[i+1] || i==n){
group[gcnt][1]=i;
group[++gcnt][0]=i+1;
}
}
for(i = 0 ; i < gcnt ; i++){
for(j = group[i][0] ; j <= group[i][1] ; j++){
if(j+1 > group[i][1])continue;
allight[acnt][0]=slight[j+1];
allight[acnt][1]=elight[j];
if(acnt>=1 && allight[acnt][0]<allight[acnt-1][1]){
allight[acnt-1][1]=allight[acnt][1];
allight[acnt][0]=allight[acnt][1]=0;
}
else acnt++;
}
}
for(i = 0 ; i < acnt ; i++){
sum+=(allight[i][1]-allight[i][0]);
}
printf("%d",sum);
return 0;
}
# | 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... |