QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#99784#6345. Random Interactive Convex Hull BoteyiigjknWA 144ms3772kbC++141.1kb2023-04-23 18:20:062023-04-23 18:20:07

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-04-23 18:20:07]
  • 评测
  • 测评结果:WA
  • 用时:144ms
  • 内存:3772kb
  • [2023-04-23 18:20:06]
  • 提交

answer

# include <bits/stdc++.h>
using namespace std;
using iter=vector<int>::iterator;
vector<int> ans;
inline iter Pos(const iter &i){return i==ans.end()?ans.begin():i;}
inline iter pre(const iter &i){return i==ans.begin()?prev(ans.end()):prev(i);}
inline iter nxt(const iter &i){return Pos(next(i));}
bool query(int i,int j,int k)
{
	printf("? %d %d %d\n",i,j,k);fflush(stdout);
	int x;scanf("%d",&x);
	return x>0;
}
void insert(iter pos,int i)
{
	auto it=ans.insert(pos,i);
	while(query(*pre(it),*pre(pre(it)),i)) it=Pos(ans.erase(pre(it)));
	while(query(*nxt(it),i,*nxt(nxt(it)))) it=pre(ans.erase(nxt(it)));
}
int main()
{
	int n;
	cin>>n;
	if(query(1,2,3)) ans={1,2,3};
	else ans={1,3,2};
	for(int i=4;i<=n;i++)
	{
		if(query(ans[0],i,ans[1])) insert(next(ans.begin()),i);
		else
		{
			int l=1,r=ans.size()-1,mid;
			while(l<r)
			{
				mid=(l+r+1)/2;
				if(query(ans[0],ans[mid],i)) l=mid;
				else r=mid-1;
			}
			if(l+1==ans.size()) insert(ans.end(),i);
			else if(query(i,ans[l+1],ans[l])) insert(ans.begin()+l+1,i);
		}
	}
	cout<<"! "<<ans.size();
	for(int i:ans) printf(" %d",i);
	return puts(""),0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 3ms
memory: 3744kb

input:

5
-1
1
-1
1
-1
-1
-1
1
-1
-1

output:

? 1 2 3
? 1 4 3
? 1 2 4
? 3 4 2
? 2 4 1
? 1 5 4
? 1 2 5
? 5 2 4
? 4 1 5
? 2 5 1
! 4 1 4 5 2

result:

ok OK, 10 queries, 4 point in hull

Test #2:

score: 0
Accepted
time: 4ms
memory: 3568kb

input:

50
-1
-1
1
-1
-1
-1
-1
1
-1
-1
-1
-1
1
1
-1
-1
1
-1
-1
-1
-1
1
1
1
1
-1
-1
-1
1
1
-1
1
-1
-1
-1
-1
1
1
-1
-1
-1
1
-1
-1
-1
-1
1
-1
1
-1
-1
-1
1
1
1
1
1
1
-1
-1
-1
-1
1
1
-1
-1
1
1
-1
-1
1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
-1
-1
1
-1
-1
-1
-1
1
1
-1
1
-1
-1
-1
1
1
-1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
1
1
-1
1
-...

output:

? 1 2 3
? 1 4 3
? 1 2 4
? 2 3 4
? 1 4 3
? 1 5 3
? 1 2 5
? 5 2 3
? 3 1 5
? 2 5 4
? 1 6 3
? 1 2 6
? 1 5 6
? 6 2 5
? 5 3 6
? 2 6 4
? 1 7 3
? 1 4 7
? 3 7 5
? 1 8 7
? 1 6 8
? 1 3 8
? 1 5 8
? 8 6 5
? 5 3 8
? 3 7 8
? 6 8 2
? 1 9 7
? 1 6 9
? 1 2 9
? 1 4 9
? 9 4 2
? 2 6 9
? 4 9 1
? 1 10 7
? 1 6 10
? 1 3 10
?...

result:

ok OK, 259 queries, 10 point in hull

Test #3:

score: 0
Accepted
time: 68ms
memory: 3620kb

input:

1000
-1
-1
1
-1
-1
-1
1
1
1
-1
-1
-1
1
1
1
-1
-1
-1
1
-1
1
-1
-1
-1
-1
1
-1
-1
1
-1
1
1
-1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
1
-1
-1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
1
1
-1
-1
1
1
1
1
1
-1
-1
-1
1
1
-1
-1
-1
1
1
1
-1
-1
-1
1
-1
1
-1
-1
1
-1
1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
-1
-1
1
-1
-1
1
-1
1
-1
-1
1
-1
-1
-1...

output:

? 1 2 3
? 1 4 3
? 1 2 4
? 2 3 4
? 1 4 3
? 1 5 3
? 1 2 5
? 1 4 5
? 4 2 5
? 2 3 5
? 1 5 3
? 1 6 3
? 1 2 6
? 1 5 6
? 5 2 6
? 2 3 6
? 1 6 3
? 1 7 3
? 1 2 7
? 1 6 7
? 7 6 2
? 2 3 7
? 6 7 1
? 1 8 3
? 1 7 8
? 1 2 8
? 8 7 2
? 1 9 3
? 1 7 9
? 1 6 9
? 9 6 7
? 7 2 9
? 2 3 9
? 6 9 1
? 1 10 3
? 1 9 10
? 1 2 10
?...

result:

ok OK, 5986 queries, 21 point in hull

Test #4:

score: 0
Accepted
time: 49ms
memory: 3724kb

input:

2000
-1
-1
-1
1
-1
-1
-1
-1
1
-1
-1
1
-1
-1
-1
1
-1
1
-1
1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
-1
1
-1
-1
-1
-1
1
-1
-1
1
-1
1
-1
-1
-1
1
1
1
-1
-1
-1
-1
1
1
1
-1
-1
-1
1
-1
-1
-1
1
1
1
1
-1
-1
-1
-1
-1
-1
-1
1
-1
-1
-1
1
1
-1
-1
-1
1
-1
-1
-1
1
1
1
-1
-1
-1
1
1
-1
1
-1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
-1
1
-...

output:

? 1 2 3
? 1 4 3
? 1 2 4
? 4 2 3
? 3 1 4
? 2 4 1
? 1 5 3
? 1 4 5
? 5 4 3
? 3 1 5
? 4 5 2
? 1 6 3
? 1 2 6
? 3 6 5
? 1 7 6
? 1 5 7
? 1 4 7
? 7 4 5
? 5 3 7
? 4 7 2
? 2 7 1
? 1 8 6
? 1 5 8
? 1 7 8
? 8 7 5
? 1 9 6
? 1 5 9
? 1 7 9
? 9 7 5
? 1 10 6
? 1 5 10
? 1 7 10
? 10 7 5
? 5 3 10
? 7 10 2
? 1 11 6
? 1 1...

result:

ok OK, 12675 queries, 23 point in hull

Test #5:

score: 0
Accepted
time: 79ms
memory: 3624kb

input:

3000
1
1
-1
-1
-1
-1
1
-1
1
-1
1
1
-1
-1
1
1
-1
-1
1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
1
1
-1
-1
-1
-1
1
-1
1
-1
1
-1
-1
1
1
1
1
-1
-1
-1
-1
1
1
1
-1
-1
-1
1
-1
1
-1
-1
-1
1
-1
-1
1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
1
1
1
-1
-1
-1
-1
1
1
1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
1
1
-1
-1
-1
1
1
1
-1
1
-1
-1
-1
1
-1
-1
...

output:

? 1 2 3
? 1 4 2
? 1 3 4
? 2 4 3
? 1 5 4
? 1 2 5
? 5 2 4
? 4 1 5
? 2 5 3
? 3 5 1
? 1 6 4
? 1 3 6
? 3 5 6
? 4 6 5
? 6 7 4
? 6 3 7
? 3 5 7
? 4 7 5
? 7 8 4
? 7 3 8
? 4 8 5
? 7 9 8
? 7 5 9
? 7 4 9
? 9 4 8
? 8 7 9
? 4 9 5
? 7 10 8
? 7 4 10
? 7 9 10
? 10 4 9
? 9 8 10
? 4 10 5
? 7 11 8
? 7 4 11
? 7 9 11
? 7...

result:

ok OK, 18367 queries, 25 point in hull

Test #6:

score: 0
Accepted
time: 103ms
memory: 3616kb

input:

4000
1
1
-1
-1
-1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
-1
1
-1
-1
-1
-1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
1
-1
1
-1
-1
-1
1
-1
-1
1
-1
-1
-1
-1
-1
-1
1
-1
1
-1
-1
-1
-1
1
-1
-1
-1
-1
1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
-1
-1
-1
1
-1
-...

output:

? 1 2 3
? 1 4 2
? 1 3 4
? 2 4 3
? 1 5 4
? 1 2 5
? 1 3 5
? 3 2 5
? 2 4 5
? 1 5 4
? 1 6 4
? 1 2 6
? 6 2 4
? 1 7 4
? 1 2 7
? 7 2 4
? 1 8 4
? 1 2 8
? 1 5 8
? 8 5 2
? 1 9 4
? 1 2 9
? 1 5 9
? 9 5 2
? 1 10 4
? 1 2 10
? 1 5 10
? 10 5 2
? 2 4 10
? 5 10 1
? 1 11 4
? 1 10 11
? 1 2 11
? 11 10 2
? 2 4 11
? 4 1 1...

result:

ok OK, 25507 queries, 22 point in hull

Test #7:

score: -100
Wrong Answer
time: 144ms
memory: 3772kb

input:

4999
-1
1
-1
-1
1
-1
1
-1
1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
1
1
-1
-1
1
-1
-1
-1
-1
1
1
-1
-1
-1
-1
1
1
1
-1
-1
-1
1
-1
-1
-1
-1
1
-1
1
1
-1
-1
1
1
1
-1
1
-1
-1
1
1
-1
-1
-1
1
1
1
-1
-1
1
1
-1
-1
-1
-1
1
1
-1
-1
-1
1
1
1
-1
1
-1
-1
1
1
-1
-1
-1
1
-1
-1
-1
-1
1
1
-1
-1
1
-1
-1
-1
1
-1
1
-1
-1
-1
1
1
1
-...

output:

? 1 2 3
? 1 4 3
? 1 2 4
? 3 4 2
? 1 5 4
? 1 2 5
? 4 5 3
? 3 5 2
? 1 6 5
? 1 2 6
? 5 6 3
? 1 7 6
? 1 3 7
? 1 5 7
? 7 3 5
? 1 8 6
? 1 3 8
? 1 5 8
? 8 5 6
? 1 9 6
? 1 2 9
? 2 3 9
? 6 9 5
? 9 10 6
? 9 2 10
? 6 10 5
? 9 11 10
? 9 5 11
? 9 6 11
? 11 5 6
? 6 10 11
? 5 11 3
? 9 12 10
? 9 5 12
? 9 6 12
? 9 1...

result:

wrong answer too many queries