#include "park.h"
#include <bits/stdc++.h>
using namespace std;
int place[1400];
int n;
bool comp(int a,int b) {
for(int i=0;i<n;i++) {
if (i==a) {
place[i]=0;
}
else {
place[i]=1;
}
}
if (Ask(0,b,place)==0) {
return true;
}
else {
return false;
}
}
void Detect(int t,int nn) {
n=nn;
if (t==1) {
for(int i=0;i<n;i++) {
for(int j=i+1;j<n;j++) {
for(int k=0;k<n;k++) {
if (k==i||k==j) {
place[k]=1;
}
else {
place[k]=0;
}
}
if (Ask(i,j,place)==1) {
Answer(i,j);
}
}
}
return;
}
if (t==2) {
vector<int> vec;
for(int i=1;i<n-1;i++) {
vec.push_back(i);
}
sort(vec.begin(),vec.end(),comp);
Answer(0,vec[0]);
Answer(vec[vec.size()-1],n-1);
for(int i=1;i<vec.size();i++) {
int one=vec[i-1];
int two=vec[i];
Answer(min(one,two),max(one,two));
}
return;
}
if (t==3) {
vector<int> vec[10];
bool vis[1400];
memset(vis,0,sizeof(vis));
vis[0]=true;
vec[0].push_back(0);
for(int j=1;j<=9;j++) {
memset(place,0,sizeof(place));
for(int k=0;k<j;k++) {
for(int i=0;i<vec[k].size();i++) {
place[vec[k][i]]=1;
}
}
for(int i=0;i<n;i++) {
if (!vis[i]) {
place[i]=1;
if (Ask(0,i,place)) {
printf("%d ",i);
vec[j].push_back(i);
vis[i]=true;
}
place[i]=0;
}
}
printf("\n");
for(int i=0;i<vec[j-1].size();i++) {
place[vec[j-1][i]]=0;
}
for(int i=0;i<vec[j].size();i++) {
int now=vec[j][i];
int l=0;
int r=vec[j-1].size()-1;
while (l<r) {
int mid=(l+r)/2;
for(int k=l;k<=mid;k++) {
place[vec[j-1][k]]=1;
}
place[now]=1;
if (Ask(0,now,place)) {
r=mid;
}
else {
l=mid+1;
}
for(int k=l;k<=mid;k++) {
place[vec[j-1][k]]=0;
}
place[now]=0;
}
Answer(min(vec[j-1][l],now),max(vec[j-1][l],now));
}
}
}
}
Compilation message
park.cpp: In function 'void Detect(int, int)':
park.cpp:53:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
53 | for(int i=1;i<vec.size();i++) {
| ~^~~~~~~~~~~
park.cpp:69:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
69 | for(int i=0;i<vec[k].size();i++) {
| ~^~~~~~~~~~~~~~
park.cpp:85:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
85 | for(int i=0;i<vec[j-1].size();i++) {
| ~^~~~~~~~~~~~~~~~
park.cpp:88:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
88 | for(int i=0;i<vec[j].size();i++) {
| ~^~~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
12 ms |
332 KB |
Output is correct |
3 |
Correct |
13 ms |
212 KB |
Output is correct |
4 |
Correct |
13 ms |
340 KB |
Output is correct |
5 |
Correct |
12 ms |
312 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
195 ms |
468 KB |
Output is correct |
2 |
Correct |
88 ms |
468 KB |
Output is correct |
3 |
Correct |
113 ms |
464 KB |
Output is correct |
4 |
Correct |
191 ms |
468 KB |
Output is correct |
5 |
Correct |
221 ms |
468 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
340 KB |
Program terminated incorrectly, or you printed something to stdout |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
340 KB |
Wrong Answer[6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
340 KB |
Wrong Answer[6] |
2 |
Halted |
0 ms |
0 KB |
- |