| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1350594 | feyza | 동굴 (IOI13_cave) | C++20 | 16 ms | 528 KiB |
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
const int maxn=5005;
int n;
int doorbit[maxn];
int usedswitch[maxn];
void exploreCave(int N)
{
n=N;
int ans[N],bit[N];
for(int i=0;i<N;i++)
{
bit[i]=0;
ans[i]=0;
}
int ask[N];
for(int i=0;i<N;i++)
{
if(tryCombination(bit)>i)
doorbit[i]=0;
else
doorbit[i]=1;
for(int j=0;j<N;j++)
{
if(usedswitch[j])
ask[j]=doorbit[ans[j]];
else
ask[j]=1-doorbit[i];
}
/*cout<<"ask ";
for(int j=0;j<N;j++)
cout<<ask[j]<<' ';
cout<<endl;*/
int curr;
for(int j=0;j<N;j++)
{
if(!usedswitch[j])
{
ask[j]=doorbit[i];
curr=tryCombination(ask);
if(curr==-1)
curr=N;
/*cout<<"try ";
for(int k=0;k<N;k++)
cout<<ask[k]<<' ';
cout<<"- "<<curr<<endl;*/
if(curr>i)
{
ans[j]=i;
usedswitch[j]=1;
bit[j]=doorbit[i];
//cout<<j<<' '<<i<<' '<<doorbit[i]<<endl;
break;
}
else
ask[j]=1-doorbit[i];
}
}
}
/*cout<<"bit ";
for(int i=0;i<N;i++)
cout<<bit[i]<<' ';
cout<<endl;
cout<<"ans ";
for(int i=0;i<N;i++)
cout<<ans[i]<<' ';
cout<<endl;*/
answer(bit,ans);
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
