이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
int a[4][676];
int b[4][676];
int c[456976];
long long fin = 0;
for(int i = 0; i < 676; i++){
for(int j = 0; j < 4; j++)a[j][i]=0;
for(int j = 0; j < 4; j++)b[j][i]=0;
}
for(int i = 0; i < 456976; i++){
c[i]=0;
}
for(int i = 0; i < n; i++){
char t1, t2, t3, t4;
cin >> t1 >> t2 >> t3 >> t4;
long long r1=0, r4=0, r2c=0, r2o=0;
if(t1==t4&&t2==t3){
r4+=c[26*(26*(26*(t3-'A')+t4-'A')+t1-'A')+t2-'A'];
}
if(t1==t4){
r2c+=b[1][26*(t2-'A')+t1-'A']-r4;
r2c+=b[0][26*(t3-'A')+t1-'A']-r4;
}
if(t2==t3){
r2c+=b[3][26*(t4-'A')+t2-'A']-r4;
r2c+=b[2][26*(t1-'A')+t2-'A']-r4;
}
r2o+=c[26*(26*(26*(t2-'A')+t1-'A')+t4-'A')+t3-'A']-r4;
r2o+=c[26*(26*(26*(t3-'A')+t4-'A')+t1-'A')+t2-'A']-r4;
r1=a[0][26*(t3-'A')+t4-'A']+a[1][26*(t1-'A')+t2-'A']+a[2][26*(t2-'A')+t4-'A']+a[3][26*(t1-'A')+t3-'A']-r4*4-r2c*2-r2o*2;
fin+=r1+r2o+r2c+r4;
//cout << i << ' ' << fin << ' ' << r1 << ' ' << r2o << ' ' << r2c << ' ' << r4 << '\n';
if(t1==t4){
b[0][26*(t1-'A')+t2-'A']++;
b[1][26*(t1-'A')+t3-'A']++;
}
if(t2==t3){
b[2][26*(t2-'A')+t1-'A']++;
b[3][26*(t2-'A')+t4-'A']++;
}
if(t1==t4&&t2==t3){
c[26*(26*(26*(t1-'A')+t2-'A')+t3-'A')+t4-'A']++;
}
a[0][26*(t1-'A')+t2-'A']++;
a[1][26*(t3-'A')+t4-'A']++;
a[2][26*(t1-'A')+t3-'A']++;
a[3][26*(t2-'A')+t4-'A']++;
}
cout << fin;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |