이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |