这题是不是有什么毛病??
查看原帖
这题是不是有什么毛病??
1122530
elpsconr楼主2024/10/12 00:29

说我第10个测试点没过,但是它测评机上显示的明明是对的,前面好几发也是第九个测试点没过,明明也是对的

/*
   卫风·芄兰
芄兰之支,童子佩觿.
虽则佩觿,能不我知?
容兮遂兮,垂带悸兮.
芄兰之叶,童子佩韘.
虽则佩韘,能不我甲?
容兮遂兮,垂带悸兮.
*/
#include<bits/stdc++.h>
using namespace std;
#define PII pair<int,int>
#define int long long
#define tul tuple<int,int,int>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define rep_(i,a,b) for(int i=a;i>=b;--i)
#define all(x) x.begin(),x.end()
#define bp(x) __builtin_popcountll(x)
#define cy cout<<"YES"<<endl
#define cn cout<<"NO"<<endl
#define lc (rt<<1)
#define rc (rt<<1|1)
mt19937_64 rnd(time(0));
const int N=3e5+5,yyx=1e9+7;
vector<PII> to[N];
int n,m,a[N];
string ask(int x,int y,int c,int d){
   cout<<"? "<<x<<" "<<y<<" "<<c<<" "<<d<<endl;
   string s;cin>>s;
   return s;
}
void show(int x,int y){
   cout<<"! "<<x<<" "<<y<<endl;
}
inline void solve(){
  cin>>n;
  if(n==2){
    show(0,1);return;
  }
  int x=0,y=1,c=y,d=y+1;
  while(1){
   string s=ask(x,y,c,d);
   if(s[0]=='>'||s[0]=='='){
      c=d,d++;
   }
   else{
      x=c,y=d;
      c=d,d++;
   }
   if(d==n){
     int xx=x,yy=y;
     rep(i,0,n-1){
      if(i==y||i==x) continue;
      int z=i;
      string st=ask(x,z,xx,yy);
      if(st[0]=='>'){
         yy=z;
      }
     }
     rep(i,0,n-1){
      if(i==y||i==x) continue;
      int z=i;
      string st=ask(z,y,xx,yy);
      if(st[0]=='>'){
         xx=z;
      }
     }
     show(xx,yy);
     return;
   }
  }
}
signed main(){
  cin.tie(0)->sync_with_stdio(0);
  //freopen("D://321//in.txt","r",stdin);
  //freopen("D://321//out.txt","w",stdout);
  int _=1;
  cin>>_;
  while(_--)
  solve();
  return 0;
}

第9-10个测试点

4
0 1 2 3
4
0 1 3 2
2024/10/12 00:29
加载中...