Submission #421631

#TimeUsernameProblemLanguageResultExecution timeMemory
421631urd05Zagrade (COI20_zagrade)C++14
100 / 100
1076 ms804 KiB
#include <bits/stdc++.h>
using namespace std;

char str[100002];

int main(void) {
    stack<int> s;
    s.push(1);
    int n,q;
    scanf("%d %d",&n,&q);
    for(int i=2;i<=n;i++) {
        if (s.empty()) {
            s.push(i);
            continue;
        }
        printf("? %d %d\n",s.top(),i);
        fflush(stdout);
        int x;
        scanf("%d",&x);
        if (x==1) {
            str[s.top()]='(';
            str[i]=')';
            s.pop();
        }
        else {
            s.push(i);
        }
    }
    int cnt=0;
    for(int i=1;i<=n;i++) {
        if (str[i]==0) {
            cnt++;
        }
    }
    int cnt2=cnt/2;
    for(int i=1;i<=n;i++) {
        if (str[i]==0) {
            if (cnt2>0) {
                cnt2--;
                str[i]=')';
            }
            else {
               str[i]='('; 
            }
        }
    }
    printf("! %s\n",str+1);
    fflush(stdout);
}

Compilation message (stderr)

zagrade.cpp: In function 'int main()':
zagrade.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     scanf("%d %d",&n,&q);
      |     ~~~~~^~~~~~~~~~~~~~~
zagrade.cpp:19:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |         scanf("%d",&x);
      |         ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...