답안 #417740

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
417740 2021-06-04T08:24:25 Z 장태환(#7548) RPS string (innopolis2021_final_C) C++17
0 / 100
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

Main.cpp: In function 'int main()':
Main.cpp:24:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |         for(i=0;i<s.size();i++)
      |                 ~^~~~~~~~~
Main.cpp:33:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |         for(i=1;i<=s.size();i++)
      |                 ~^~~~~~~~~~
Main.cpp:80:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |         for(i=0;i<s.size();i++)
      |                 ~^~~~~~~~~
Main.cpp:91:74: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   91 |                 int possr=(rlposs[i+1][arr[i]]<rpsum[i+1][lo[arr[i]]])||i==s.size()-1;
      |                                                                         ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -