読者です 読者をやめる 読者になる 読者になる

メモ

yukicoderで遊んでいる競プロゆるふわ勢

yukicoder No.135 とりあえず1次元の問題

問題はこちら
No.135 とりあえず1次元の問題 - yukicoder

ソートして隣りあう2つを見比べれば良い

int c(int*a,int*b){return*a-*b;}
int main(){
	int m,a[100010],s,i,n=0;
	scanf("%d",&m);
	for(i=0;i<m;i++)scanf("%d",a+i);
	qsort(a,m,4,c);
	for(i=1;i<m;i++){
		s=a[i]-a[i-1];
		if(s!=0&&(n==0||s<n))n=s;
	}
	printf("%d",n);
	return 0;
}

読み捨てをするために配列の添字を逆にして短縮

a[1<<17],x,s,n;
c(int*a,int*b){x=*a-*b;}
main(m){
	for(;~scanf("%d",a-m);m--);
	for(qsort(a,-m,4,c);++m;n=s&&!n|s<n?s:n)s=a[-m]-a[~m];
	s=!printf("%d",n);
}

147B