QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#391791#6303. InversionCore_65536WA 1ms3568kbC++171.4kb2024-04-16 19:48:172024-04-16 19:48:18

Judging History

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

  • [2024-04-16 19:48:18]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3568kb
  • [2024-04-16 19:48:17]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
#define endl "\n"

using namespace std;
map<pair<int,int>,int>  mp;

bool cmp(int r,int l){
    if(r-l==1){
        if(mp.count({l,r})) return mp[{l,r}];
        cout<<"? "<<l<<" "<<r<<endl;    fflush(stdout);
        int ans;    cin>>ans;
        mp[{l,r}]=ans;
        return (!ans);
    }
    int a=0,b=0,c=0,d=0;
    if(l!=r){
        if(mp.count({l,r})) return mp[{l,r}];
        cout<<"? "<<l<<" "<<r<<endl;    fflush(stdout);
        cin>>a;
        mp[{l,r}]=a;
    }
    if(l+1!=r){
        if(mp.count({l+1,r})) return mp[{l+1,r}];
        cout<<"? "<<l+1<<" "<<r<<endl;  fflush(stdout);
        cin>>b;
        mp[{l+1,r}]=b;
    }
    if(l!=r-1){
        if(mp.count({l,r-1})) return mp[{l,r-1}];
        cout<<"? "<<l<<" "<<r-1<<endl;    fflush(stdout);
        cin>>c;
        mp[{l,r-1}]=c;
    }
    if(l+1!=r-1){
        if(mp.count({l+1,r-1})) return mp[{l+1,r-1}];
        cout<<"? "<<l+1<<" "<<r-1<<endl;  fflush(stdout);
        cin>>d;
        mp[{l+1,r-1}]=d;
    }
    return (a-b-c+d)!=0;
}

void solve(){
    int n;  cin>>n;
    int ans[n+1];
    for(int i=1;i<=n;i++){
        ans[i]=i;
    }
    stable_sort(ans+1,ans+n+1,cmp);
    
    cout<<"! ";
    for(int i=1;i<=n;i++){
        cout<<ans[i]<<" ";
    }
}

signed main(){
    ios::sync_with_stdio(0);
    int T=1;    //cin>>T;
    while(T--)  solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 3568kb

input:

3
0
0
1

output:

? 1 2
? 1 3
? 2 3
! 2 1 3 

result:

wrong answer Wa.