結果
| 問題 | No.3496 協力カード当て |
| コンテスト | |
| ユーザー |
👑 tails
|
| 提出日時 | 2026-04-14 23:05:44 |
| 言語 | cLay (20250308-1 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 64 ms / 2,000 ms |
| コード長 | 1,252 bytes |
| 記録 | |
| コンパイル時間 | 8,531 ms |
| コンパイル使用メモリ | 239,272 KB |
| 実行使用メモリ | 30,076 KB |
| スコア | 174 |
| 平均クエリ数 | 34.75 |
| 最終ジャッジ日時 | 2026-04-14 23:54:14 |
| 合計ジャッジ時間 | 14,375 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_1 |
| 純コード判定しない問題か言語 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 16 |
ソースコード
//interactive
int @id,@n,@m,a[m+1]{},h[m+1]{},v[m+1];
rep(n){
int @c;
a[c]=h[c]+=1;
}
sortA_index(m+1,h,v);
int a_num=1;
int a_pos=0;
int a_sum=0;
int a_asked=-1;
int b[m+1]{};
int b_num=1;
int b_sum=0;
int b_asked=-1;
int r_sum=0;
int r[m+1];
rep(i,m+1){
r[i]=-1;
}
while(h[a_pos]==0){
++a_pos;
}
int waiting=0;
while(1){
waiting>>=1;
string @s;
if(s=="TURN"){
if(a_sum<n){
wt("ASK",v[a_pos]);
a_sum+=a_asked==v[a_pos]?1:a_num;
a_asked=v[a_pos];
if(a_sum+a_num>n){
a_sum=n;
}else{
if(h[a_pos]==a_num){
++a_pos;
if(v[a_pos-1]>v[a_pos]){
++a_num;
}
}else{
++a_num;
}
}
}else{
if(r_sum<n*3||b_sum<n){
int i=1;
while(i<m&&r[i]>=0){
++i;
}
wt("ASK",i);
}else{
wtN("GUESS");
rep(i,1,m+1){
rep(r[i]-a[i]-b[i]){
wtN(" ",i);
}
}
wt("");
}
}
}
if(s=="WAIT"){
waiting=2;
}
if(s=="END"){
exit(0);
}
if(s=="COUNT"){
int @x,@k;
if(r[x]<0){
r[x]=k;
r_sum+=k;
}
if(waiting){
if(b_sum<n){
if(x<=b_asked){
++b_num;
}
b_sum+=x==b_asked?1:b_num;
b_asked=x;
b[x]=b_num;
if(b_sum+b_num>n){
b[x]+=n-b_sum;
b_sum=n;
}
}
}
}
if(s=="GUESSED"){
int @x,@k;
}
}
tails