QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#631993#9454. String of CCPCucup-team3646#AC ✓34ms5252kbC++202.5kb2024-10-12 11:21:062024-10-12 11:21:07

Judging History

你现在查看的是最新测评结果

  • [2024-10-12 11:21:07]
  • 评测
  • 测评结果:AC
  • 用时:34ms
  • 内存:5252kb
  • [2024-10-12 11:21:06]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define elif else if
#define vi vector<int>
#define vll vector<ll>
#define vvi vector<vi>
#define pii pair<int,int>


#define repname(a, b, c, d, e, ...) e
#define rep(...)                    repname(__VA_ARGS__, rep3, rep2, rep1, rep0)(__VA_ARGS__)
#define rep0(x)                     for (int rep_counter = 0; rep_counter < (x); ++rep_counter)
#define rep1(i, x)                  for (int i = 0; i < (x); ++i)
#define rep2(i, l, r)               for (int i = (l); i < (r); ++i)
#define rep3(i, l, r, c)            for (int i = (l); i < (r); i += (c))





struct ScalarInput {
    template<class T>
    operator T(){
        T ret;
        cin >> ret;
        return ret;
    }
};
struct VectorInput {
    size_t n;
    VectorInput(size_t n): n(n) {}
    template<class T>
    operator vector<T>(){
        vector<T> ret(n);
        for(T &x : ret) cin >> x;
        return ret;
    }
};
ScalarInput input(){ return ScalarInput(); }
VectorInput input(size_t n){ return VectorInput(n); }

template<typename T>
void print(vector<T> a){
  for(int i=0;i<a.size();i++){
    cout<<a[i]<<" \n"[i+1==a.size()];
  }
}

template<class T>
void print(T x){
    cout << x << '\n';
}
 
template <class Head, class... Tail>
void print(Head&& head, Tail&&... tail){
  cout << head << ' ';
  print(forward<Tail>(tail)...);
}

int n;
bool ok(int i){
  return 0<=i&&i<n;
}
void solve(){
  cin>>n;
  string s;
  cin>>s;
  vector<int>pos(n+1,0);
  int ans=0;
  rep(l,n){
    int r=l+3;
    if(r>=n)continue;
    if(s.substr(l,4)=="CCPC"){
      ans++;
      rep(i,1,4)pos[l+i]=1;
    }
  }
  int flag=0;
  rep(i,n+1){
    if(pos[i]==0){
      {
        string t="";
        if(ok(i))t+=s[i];
        if(ok(i+1))t+=s[i+1];
        if(ok(i+2))t+=s[i+2];
        if(t=="CPC")flag=1;
      }

      {
        string t="";
        if(ok(i-1))t+=s[i-1];
        if(ok(i))t+=s[i];
        if(ok(i+1))t+=s[i+1];
        if(t=="CPC")flag=1;
      }

      {
        string t="";
        if(ok(i-2))t+=s[i-2];
        if(ok(i-1))t+=s[i-1];
        if(ok(i))t+=s[i];
        if(t=="CCC")flag=1;
      }

      {
        string t;
        if(ok(i-3))t+=s[i-3];
        if(ok(i-2))t+=s[i-2];
        if(ok(i-1))t+=s[i-1];
        if(t=="CCP")flag=1;
      }

    }
  }
  print(ans+flag);
}

int main(){
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int T;
  cin>>T;
  rep(T)solve();
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3592kb

input:

3
3
CCC
5
CCCCP
4
CPCP

output:

1
1
1

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 34ms
memory: 5252kb

input:

20003
5
PCCPC
10
CPPPPCPCPC
4
CPPC
11
CCPPCPPPCCP
17
PPPPCPCCCCCPCCCCC
10
PPCCPCPPCP
9
CPCCCCPPC
11
PCPPPPCCPPP
15
CPCPPPPCCPCPCCC
11
PCCPPCCPCPP
9
PCPCCPPCP
10
CCPCPPPCPP
14
CCCCPPPCPCPCPP
2
CC
12
CCPCPPPPPCPP
6
CPPPPP
12
PCCPCCCCCPCC
16
CPCCPCCPPCCCCPPC
7
CPPPCPC
16
PPPPPCCPCPCPCPPC
13
PPPCPCCCCPP...

output:

1
1
0
1
2
1
1
1
2
2
1
1
1
0
1
0
3
2
1
2
1
2
2
0
1
2
3
1
1
3
1
2
2
1
0
0
0
3
1
0
0
1
1
2
0
1
1
0
1
2
0
1
0
1
0
3
1
1
0
2
1
3
2
2
0
2
2
0
0
2
1
1
3
3
1
3
1
2
0
1
1
0
1
2
2
1
1
2
1
3
1
1
3
1
2
2
0
1
0
3
0
1
1
2
2
0
2
1
1
2
2
0
3
1
1
1
1
2
1
2
0
1
1
0
3
0
3
1
1
0
0
1
0
3
0
1
1
1
1
2
2
1
1
0
0
1
2
0
1
2
...

result:

ok 20003 lines

Extra Test:

score: 0
Extra Test Passed