QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#843561 | #9804. Guess the Polygon | windcity | WA | 0ms | 3904kb | C++14 | 809b | 2025-01-04 20:27:34 | 2025-01-04 20:27:35 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
inline long double query(int x,int y){
printf("? %d %d\n",x,y);
fflush(stdout);
long double a,b;
scanf("%Lf%Lf",&a,&b);
return a/b;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
vector<int> v(n);
for(register int i=0;i<n;++i){
int y;scanf("%d%d",&v[i],&y);
}
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
long double ans=0;
if((int)v.size()<n){
for(size_t i=0;i+1<v.size();++i)
ans+=(v[i+1]-v[i])*query(v[i+1]+v[i],2);
}
else{
for(size_t i=1;i+1<v.size();++i)
ans+=(v[i+1]-v[i-1])*query(v[i],1);
}
int sum=llround(ans);
if(sum&1)printf("! %d 2\n",sum);
else printf("! %d 1\n",sum/2);
fflush(stdout);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3904kb
input:
2 4 3 0 1 3 1 1 0 0 1 1 1 1
output:
? 1 2 ? 4 2 ! 3 2
result:
wrong answer the answer is incorrect, expect: 3/1, find: 3/2 (test case 1)