結果

問題 No.96 圏外です。
ユーザー 👑 hos.lyrichos.lyric
提出日時 2015-02-24 02:57:52
言語 C++11
(gcc 11.4.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 908 bytes
コンパイル時間 222 ms
コンパイル使用メモリ 29,256 KB
最終ジャッジ日時 2024-04-27 02:06:45
合計ジャッジ時間 884 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.cpp:1:2: warning: #import is a deprecated GCC extension [-Wdeprecated]
    1 | #import<algorithm>
      |  ^~~~~~
main.cpp: In function ‘int main()’:
main.cpp:8:9: error: ‘scanf’ was not declared in this scope
    8 |         scanf("%d",&N);
      |         ^~~~~
main.cpp:27:29: error: ‘hypot’ was not declared in this scope
   27 |                         t=2+hypot(X[A[k]]-X[A[l]],Y[A[k]]-Y[A[l]]);
      |                             ^~~~~
main.cpp:31:9: error: ‘printf’ was not declared in this scope
   31 |         printf("%.9f\n",z);
      |         ^~~~~~
main.cpp:2:1: note: ‘printf’ is defined in header ‘<cstdio>’; did you forget to ‘#include <cstdio>’?
    1 | #import<algorithm>
  +++ |+#include <cstdio>
    2 | enum{M=1<<17,B=20000};

ソースコード

diff #

#import<algorithm>
enum{M=1<<17,B=20000};
int N,X[M],Y[M],I[M],P[M],A[M],i,j,k,l,m,n;
double z=1,t;
int R(int u){return P[u]==u?u:P[u]=R(P[u]);}
int D(int a,int b,int c){return(X[b]-X[a])*(Y[c]-Y[a])<=(Y[b]-Y[a])*(X[c]-X[a]);}
int main(){
	scanf("%d",&N);
	for(i=N;i--;I[i]=P[i]=i,A[i]=X[i]*B+Y[i])scanf("%d%d",X+i,Y+i);
	std::sort(I,I+N,[](int a,int b){return A[a]<A[b];});
	for(i=11;i--;)for(j=i?-11:0;++j<11;)if(i*i+j*j<101){
		for(k=l=0;l<N;m<0?++l:++k){
			(m=A[I[l]]-A[I[k]]-i*B-j)||(P[R(I[l])]=R(I[k]));
		}
	}
	std::sort(I,I+N,[](int a,int b){m=R(a)-R(b);return m?m<0:A[a]<A[b];});
	for(i=j=0;i<N;i=j){
		n=0;
		for(;j<N&&R(I[i])==R(I[j]);A[++n]=I[j++]){
			for(;n>1&&D(A[n-1],A[n],I[j]);--n);
		}
		m=n;
		for(k=j;k-->i;A[++n]=I[k]){
			for(;n>m&&D(A[n-1],A[n],I[k]);--n);
		}
		for(k=n;k;--k)for(l=n;l;--l){
			t=2+hypot(X[A[k]]-X[A[l]],Y[A[k]]-Y[A[l]]);
			z=z>t?z:t;
		}
	}
	printf("%.9f\n",z);
}
0