QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#674046 | #9454. String of CCPC | Wolam# | AC ✓ | 16ms | 4672kb | C++20 | 1.0kb | 2024-10-25 13:24:30 | 2024-10-25 13:24:32 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
char s[200005];
int t[200005];
int n,ans;
void solve(void)
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>s[i];
t[i]=0;
}
s[n+1]='@';
ans=0;
for(int i=1;i+3<=n;i++)
{
if(s[i]=='C'&&s[i+1]=='C'&&s[i+2]=='P'&&s[i+3]=='C')
{
t[i]=1;
ans++;
}
}
int sum=ans;
for(int i=0;i<=n;i++)
{
int d=0,p=0,c=0;
for(int j=0;i-j>=1&&j<3;j++)
d-=t[i-j];
if(i-1>=1&&s[i-1]=='C'&&s[i]=='C'&&s[i+1]=='C')p++;
if(i-2>=1&&s[i-2]=='C'&&s[i-1]=='C'&&s[i]=='P')c++;
if(i>=1&&s[i]=='C'&&s[i+1]=='P'&&s[i+2]=='C')c++;
if(s[i+1]=='C'&&s[i+2]=='P'&&s[i+3]=='C')c++;
sum=max(sum,ans+d+max(p,c));
}
cout<<sum<<'\n';
}
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3568kb
input:
3 3 CCC 5 CCCCP 4 CPCP
output:
1 1 1
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 16ms
memory: 4672kb
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