Submission #129197

#TimeUsernameProblemLanguageResultExecution timeMemory
129197thanosparentrises (BOI18_parentrises)C++14
22 / 100
93 ms1272 KiB
#include<iostream>
#include<string>
#include<stack>
using namespace std;
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;
    string s;
    int c[10005]={0};
    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();
    }
    for(int i=0; i<s.length(); i++){
      if(vv[i]){
        bool g=false;
        if(s[i]==')'){
          int h=i-1;
          while(h>=0){
            if(s[h]==')' && !v[h]){
              v[h]=true;
              c[h]=1;
              c[i]=2;
              g=true;
              break;
            }
            h--;
          }
        }
        if(s[i]=='('){
          int h=i+1;
          while(h<s.length()){
            if(s[h]=='(' && !v[h]){
              v[h]=true;
              c[h]=1;
              c[i]=2;
              g=true;
              break;
            }
            h++;
          }
        }
        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 (stderr)

parentrises.cpp: In function 'int main()':
parentrises.cpp:21:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<s.length(); i++){
                  ~^~~~~~~~~~~
parentrises.cpp:38:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<s.length(); i++){
                  ~^~~~~~~~~~~
parentrises.cpp:56:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
           while(h<s.length()){
                 ~^~~~~~~~~~~
parentrises.cpp:77:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<s.length(); i++){
                  ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...