結果

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

コンパイルメッセージ
main.cpp:1:2: warning: #import is a deprecated GCC extension [-Wdeprecated]
    1 | #import<algorithm>
      |  ^~~~~~
main.cpp: In function ‘int main()’:
main.cpp:2:218: error: ‘scanf’ was not declared in this scope
    2 | enum{M=1<<17,B=20000};int N,X[M],Y[M],I[M],P[M],A[M],i,j,k,l,m,n,p,q;float 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(;p<N;p=q){for(n=0;q<N&&R(I[p])==R(I[q]);A[++n]=I[q++])for(;n>1&&D(A[n-1],A[n],I[q]);--n);for(m=n,k=q;k-->p;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("%f\n",z);}
      |                                                                                                                                                                                                                          ^~~~~
main.cpp:2:733: error: ‘hypot’ was not declared in this scope
    2 | enum{M=1<<17,B=20000};int N,X[M],Y[M],I[M],P[M],A[M],i,j,k,l,m,n,p,q;float 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(;p<N;p=q){for(n=0;q<N&&R(I[p])==R(I[q]);A[++n]=I[q++])for(;n>1&&D(A[n-1],A[n],I[q]);--n);for(m=n,k=q;k-->p;A[++n]=I

ソースコード

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,p,q;float 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(;p<N;p=q){for(n=0;q<N&&R(I[p])==R(I[q]);A[++n]=I[q++])for(;n>1&&D(A[n-1],A[n],I[q]);--n);for(m=n,k=q;k-->p;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("%f\n",z);}
0