Mahfuz2411's blog

By Mahfuz2411, history, 3 hours ago, In English

Contest: Codeforces Round 967 (Div. 2) Problem: 2001C - Guess The Tree

Please read my post, and if you don't like it, before downvoting, please leave a comment explaining why you didn't like my post!

I haven't dealt with this type of problem before, so I don't know what's happening here. Please help me.

here is my code

void solve() {
    int n;   cin>>n;
    vector <int> v[1001];
    vector <pair <int,int>> ans;
    for(int i=2; i<=n; i++) {
        cout << "? " << 1 << ' ' << i << endl;
        cout.flush();
        int a;  cin>>a;
        if(a==1) ans.push_back({1, i});
        else v[a].push_back(i);
    }
 
    for(int i=2; i<=n; i++) {
        for(auto j: v[i]) {
            cout << "? " << i << ' ' << j << endl;
            cout.flush();
          
            int a;  cin>>a;
            if(a==-1) exit(0);
            if(a==i or a==j) ans.push_back({i, j});
            else v[a].push_back(j);
        }
    }
 
    cout << "! ";
    for(auto [x,y]: ans) cout << x << ' ' << y << spc;
    cout << newl;
    cout.flush();
    // long_line;
    return;
}

and here is my submission

  • Vote: I like it
  • -2
  • Vote: I do not like it

»
3 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

You may be asking more than the limit.

  • »
    »
    2 hours ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    This is my only one post on this topic!!

    • »
      »
      »
      2 hours ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      He meant that you may be taking more input than is given, so the program waits for input when nothing is left to input

    • »
      »
      »
      2 hours ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I mean, you're trying to solve this problem by asking the interactive machine too many times, so you're going to make mistakes.

      • »
        »
        »
        »
        2 hours ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        "They said that if more than 15n queries are made, the remaining queries will return -1. So, I added a logic where the program will terminate if -1 is received as input, and a wrong answer verdict will be given. So, this shouldn't be happening!

        • »
          »
          »
          »
          »
          118 minutes ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          When you receive -1, you are already wrong. Therefore, you need to keep the number of times strictly under 15n.

»
38 minutes ago, # |
  Vote: I like it 0 Vote: I do not like it

Idleness happens when the tester is waiting for your code to output something but nothing is happening. I recommend you to make you make your own test case and do a hard dry run on that. You can see my submissions on this question to see how I am so eligible to say so :|