답안 #129218

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
129218 2019-07-11T20:48:23 Z thanos parentrises (BOI18_parentrises) C++14
22 / 100
1000 ms 6264 KB
#include<iostream>
#include<string>
#include<stack>
using namespace std;
string s;
bool v[1000005],vv[1000005];
int c[1000005];
void initialise(){
  s.clear();
  for(int i=0; i<=1000002; i++){
    v[i]=false;
    vv[i]=false;
    c[i]=0;
  }
}
int main(){
  int P;
  cin>>P;
  if(P==2){
    cout<<0<<endl;
    return 0;
  }
  int T;
  cin>>T;
  for(int k=0; k<T; k++){
    bool f=true;
    initialise(); //c,s,v,vv[]
    stack<int> myst;
    //bool v[10005]={false},vv[100005]={false};
    cin>>s;
    for(int i=0; i<s.length(); i++){
      if(s[i]=='('){
        myst.push(i);
      }
      else{
        if(!myst.empty()){
          myst.pop();
        }
        else{
          v[i]=vv[i]=true;
        }
      }
    }
    while(!myst.empty()){
      v[myst.top()]=vv[myst.top()]=true;
      myst.pop();
    }
    stack<int> tl,tr;
    for(int i=0; i<s.length(); i++){
      bool g=true;
      if(vv[i]){
        if(s[i]==')'){
          g=false;
          if(!tl.empty()){
            v[tl.top()]=true;
            c[tl.top()]=1;
            c[i]=2;
            g=true;
            tl.pop();
          }
        }
      }
      else if(s[i]==')'){
        tl.push(i);
      }
      if(!g){
        cout<<"impossible"<<endl;
        f=false;;
        break;
      }
      if(vv[s.length()-i-1]){
        if(s[s.length()-i-1]=='('){
          g=false;
          if(!tr.empty()){
            v[tr.top()]=true;
            c[tr.top()]=1;
            c[s.length()-i-1]=2;
            g=true;
            tr.pop();
          }
        }
      }
      else if(s[s.length()-i-1]=='('){
        tr.push(s.length()-i-1);
      }
      if(!g){
        cout<<"impossible"<<endl;
        f=false;
        break;
      }
    }
    if(!f){
      continue;
    }
    for(int i=0; i<s.length(); i++){
      if(c[i]==0){
        cout<<"G";
      }
      else if(c[i]==1){
        cout<<"B";
      }
      else{
        cout<<"R";
      }
    }
    cout<<endl;
  }
  return 0;
}

Compilation message

parentrises.cpp: In function 'int main()':
parentrises.cpp:31:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<s.length(); i++){
                  ~^~~~~~~~~~~
parentrises.cpp:49:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<s.length(); i++){
                  ~^~~~~~~~~~~
parentrises.cpp:95:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<s.length(); i++){
                  ~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 6264 KB Output is correct
2 Correct 18 ms 6136 KB Output is correct
3 Correct 17 ms 6136 KB Output is correct
4 Correct 17 ms 6136 KB Output is correct
5 Correct 16 ms 6136 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 6136 KB Output is correct
2 Correct 8 ms 6264 KB Output is correct
3 Correct 17 ms 6136 KB Output is correct
4 Correct 10 ms 6140 KB Output is correct
5 Correct 8 ms 6136 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 6136 KB Output is correct
2 Correct 8 ms 6264 KB Output is correct
3 Correct 17 ms 6136 KB Output is correct
4 Correct 10 ms 6140 KB Output is correct
5 Correct 8 ms 6136 KB Output is correct
6 Correct 10 ms 6136 KB Output is correct
7 Correct 8 ms 6184 KB Output is correct
8 Correct 29 ms 6136 KB Output is correct
9 Correct 123 ms 6136 KB Output is correct
10 Correct 8 ms 6264 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 6136 KB Output is correct
2 Correct 8 ms 6264 KB Output is correct
3 Correct 17 ms 6136 KB Output is correct
4 Correct 10 ms 6140 KB Output is correct
5 Correct 8 ms 6136 KB Output is correct
6 Correct 10 ms 6136 KB Output is correct
7 Correct 8 ms 6184 KB Output is correct
8 Correct 29 ms 6136 KB Output is correct
9 Correct 123 ms 6136 KB Output is correct
10 Correct 8 ms 6264 KB Output is correct
11 Execution timed out 1072 ms 6240 KB Time limit exceeded
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Output isn't correct