Submission #59662162
Source Code Expand
#include <bits/stdc++.h>
#include<atcoder/all>
#define rep(i,n) for(int i=0;i<(n);i++)
using namespace std;
using namespace atcoder;
#define all(a) a.begin(),a.end()
typedef long long ll;
typedef pair<ll,ll> P;
constexpr ll mod=998244353;
typedef modint998244353 mi;
int substr_match(string s,string t){
int n=s.size();
string sr,sg,sb;
rep(i,n){
if(s[i]=='R'){
sr.push_back('R');
sg.push_back('B');
sb.push_back('G');
}
if(s[i]=='G'){
sr.push_back('B');
sg.push_back('G');
sb.push_back('R');
}
if(s[i]=='B'){
sr.push_back('G');
sg.push_back('R');
sb.push_back('B');
}
}
int ans=0;
mi ht=0,hr=0,hg=0,hb=0;
int base=1213;
rep(i,n){
hr=hr*base+sr[i];
hg=hg*base+sg[i];
hb=hb*base+sb[i];
ht=ht+pow_mod(base,i,mod)*t[n-1-i];
if(ht==hr||ht==hg||ht==hb){
ans++;
}
}
return ans;
}
int all_same(string s){
rep(i,s.size()-1){
if(s[i]!=s[i+1])return 0;
}
return 1;
}
int main(){
int n;cin>>n;
string s,t;cin>>s>>t;
int ans=0;
ans+=substr_match(s,t);
ans+=substr_match(t,s);
string diag;
rep(i,n){
if(s[i]==t[i])diag.push_back(s[i]);
else{
if(s[i]!='R'&&t[i]!='R')diag.push_back('R');
if(s[i]!='G'&&t[i]!='G')diag.push_back('G');
if(s[i]!='B'&&t[i]!='B')diag.push_back('B');
}
}
ans-=all_same(diag);
cout<<ans<<endl;
}
Submission Info
Submission Time |
|
Task |
047 - Monochromatic Diagonal(★7) |
User |
Rho17 |
Language |
C++ 20 (gcc 12.2) |
Score |
7 |
Code Size |
1660 Byte |
Status |
AC |
Exec Time |
252 ms |
Memory |
12824 KiB |
Compile Error
Main.cpp: In function ‘int all_same(std::string)’:
Main.cpp:3:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
3 | #define rep(i,n) for(int i=0;i<(n);i++)
| ^
Main.cpp:48:5: note: in expansion of macro ‘rep’
48 | rep(i,s.size()-1){
| ^~~
Judge Result
Set Name |
Sample |
Subtask1 |
Subtask2 |
Score / Max Score |
0 / 0 |
2 / 2 |
5 / 5 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
00_sample_0_12.txt, 00_sample_1_12.txt, 00_sample_2_12.txt |
Subtask1 |
00_sample_0_12.txt, 00_sample_1_12.txt, 00_sample_2_12.txt, 01_limits_0_12.txt, 01_limits_1_12.txt, 01_limits_2_12.txt, 01_limits_3_12.txt, 01_limits_4_12.txt, 01_limits_5_12.txt, 01_limits_6_12.txt |
Subtask2 |
00_sample_0_12.txt, 00_sample_1_12.txt, 00_sample_2_12.txt, 01_limits_0_12.txt, 01_limits_1_12.txt, 01_limits_2_12.txt, 01_limits_3_12.txt, 01_limits_4_12.txt, 01_limits_5_12.txt, 01_limits_6_12.txt, 02_corner_0__2.txt, 02_corner_1__2.txt, 03_limits_0__2.txt, 03_limits_1__2.txt, 03_limits_2__2.txt, 03_limits_3__2.txt, 04_random_0__2.txt, 04_random_1__2.txt |
Case Name |
Status |
Exec Time |
Memory |
00_sample_0_12.txt |
AC |
1 ms |
3416 KiB |
00_sample_1_12.txt |
AC |
1 ms |
3420 KiB |
00_sample_2_12.txt |
AC |
1 ms |
3496 KiB |
01_limits_0_12.txt |
AC |
1 ms |
3516 KiB |
01_limits_1_12.txt |
AC |
3 ms |
3564 KiB |
01_limits_2_12.txt |
AC |
1 ms |
3400 KiB |
01_limits_3_12.txt |
AC |
1 ms |
3528 KiB |
01_limits_4_12.txt |
AC |
1 ms |
3604 KiB |
01_limits_5_12.txt |
AC |
1 ms |
3572 KiB |
01_limits_6_12.txt |
AC |
2 ms |
3704 KiB |
02_corner_0__2.txt |
AC |
4 ms |
3628 KiB |
02_corner_1__2.txt |
AC |
228 ms |
12764 KiB |
03_limits_0__2.txt |
AC |
228 ms |
12768 KiB |
03_limits_1__2.txt |
AC |
228 ms |
12700 KiB |
03_limits_2__2.txt |
AC |
229 ms |
12820 KiB |
03_limits_3__2.txt |
AC |
243 ms |
12824 KiB |
04_random_0__2.txt |
AC |
178 ms |
9348 KiB |
04_random_1__2.txt |
AC |
252 ms |
12788 KiB |