結果
問題 | No.5013 セクスタプル (open) |
ユーザー |
![]() |
提出日時 | 2022-12-29 16:03:52 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 1,962 ms / 2,000 ms |
コード長 | 1,437 bytes |
コンパイル時間 | 2,205 ms |
実行使用メモリ | 6,952 KB |
スコア | 16,941 |
最終ジャッジ日時 | 2022-12-29 16:07:18 |
合計ジャッジ時間 | 205,538 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge15 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 100 |
ソースコード
static int f_row(int y,int p[6],int d[36][6]){int z=0;int v[6]{};int n[6]{};rep(x,6){int i=p[y*6+x];rep(k,6){int c=d[i][k];v[c]|=1<<x;n[c]+=1;}}rep(c,6){if(v[c]==63){z+=n[c]-3;}}return z;}static int f_col(int x,int p[6],int d[36][6]){int z=0;int v[6]{};int n[6]{};rep(y,6){int i=p[y*6+x];rep(k,6){int c=d[i][k];v[c]|=1<<y;n[c]+=1;}}rep(c,6){if(v[c]==63){z+=n[c]-3;}}return z;}{Timer timer;timer.set();Rand r;int@--d[36][6];int p[36];int s=0;int s_row[6],s_col[6];rep(i,36)p[i]=i;rep(i,6)s+=s_row[i]=f_row(i,p,d);rep(i,6)s+=s_col[i]=f_col(i,p,d);int best_p[36];int best_s=-1;double a;while(a=timer.get()/1.96,a<1.0){double t=100.*pow(1./100.,a);int i=r.get(36);int j=r.get(36);if(i!=j){swap(p[i],p[j]);int sir=f_row(i/6,p,d);int sic=f_col(i%6,p,d);int sjr=0;int sjc=0;int e=sir+sic-s_row[i/6]-s_col[i%6];if(i/6!=j/6){sjr=f_row(j/6,p,d);e+=sjr-s_row[j/6];}if(i%6!=j%6){sjc=f_col(j%6,p,d);e+=sjc-s_col[j%6];}if(r.get(0.,1.)<exp(e/t)){s_row[j/6]=sjr;s_row[i/6]=sir;s_col[j%6]=sjc;s_col[i%6]=sic;s+=e;if(s>best_s){best_s=s;rep(i,36)best_p[i]=p[i];}}else{swap(p[i],p[j]);}}}{int o[36];rep(i,36){o[p[i]]=i;}rep(i,36){wt(o[i]/6+1,o[i]%6+1);}}}