# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
417740 | 2021-06-04T08:24:25 Z | 장태환(#7548) | RPS string (innopolis2021_final_C) | C++17 | 1 ms | 204 KB |
#include <iostream> #include <string> using namespace std; int psum[500][3]; int rpsum[500][3]; int lac[500][3]; int rlac[500][3]; int lposs[500][3]; int rlposs[500][3]; int arr[500]; int wi[3]={1,2,0}; int lo[3]={2,0,1}; int main() { int T; cin >> T; while(T--) { int N; cin >> N; string s; cin >> s; int i; for(i=0;i<s.size();i++) { if(s[i]=='r') arr[i]=0; else if(s[i]=='p') arr[i]=1; else arr[i]=2; } for(i=1;i<=s.size();i++) { int j; for(j=0;j<3;j++) { psum[i][j]=psum[i-1][j]; lac[i][j]=lac[i-1][j]; lposs[i][j]=lposs[i-1][j]; } psum[i][arr[i-1]]++; lac[i][arr[i-1]]=i; lposs[i][arr[i-1]]=lposs[lac[i][lo[arr[i-1]]]][arr[i-1]]; int psumc=psum[i-1][arr[i-1]]-psum[lac[i-1][lo[arr[i-1]]]][arr[i-1]]; int psumw=psum[i-1][wi[arr[i-1]]]-psum[lac[i-1][lo[arr[i-1]]]][wi[arr[i-1]]]; if(psumc&&!psumw) { lposs[i][arr[i-1]]++; } } psum[s.size()+1][0]=0; psum[s.size()+1][1]=0; psum[s.size()+1][2]=0; rlac[s.size()+1][0]=s.size()+1; rlac[s.size()+1][1]=s.size()+1; rlac[s.size()+1][2]=s.size()+1; rlposs[s.size()+1][0]=0; rlposs[s.size()+1][1]=0; rlposs[s.size()+1][2]=0; for(i=s.size();i>0;i--) { int j; for(j=0;j<3;j++) { rpsum[i][j]=rpsum[i+1][j]; rlac[i][j]=rlac[i+1][j]; rlposs[i][j]=rlposs[i+1][j]; } rpsum[i][arr[i-1]]++; rlac[i][arr[i-1]]=i; rlposs[i][arr[i-1]]=rlposs[rlac[i][lo[arr[i-1]]]][arr[i-1]]; int psumc=rpsum[i+1][arr[i-1]]-rpsum[rlac[i+1][lo[arr[i-1]]]][arr[i-1]]; int psumw=rpsum[i+1][wi[arr[i-1]]]-rpsum[rlac[i+1][lo[arr[i-1]]]][wi[arr[i-1]]]; if(psumc&&!psumw) { rlposs[i][arr[i-1]]++; } } for(i=0;i<s.size();i++) { if(N==1) { int possl=!psum[i][wi[arr[i]]]||psum[i][lo[arr[i]]]; int possr=!rpsum[i+2][wi[arr[i]]]||rpsum[i+2][lo[arr[i]]]; cout << (possl&&possr); } else { int possl=(lposs[i+1][arr[i]]<psum[i+1][lo[arr[i]]])||i==0; int possr=(rlposs[i+1][arr[i]]<rpsum[i+1][lo[arr[i]]])||i==s.size()-1; cout << (possl&&possr); } } } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |