이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int x [30][30]; int y [30][30]; int z [30][30]; int q [30][30];
int xy [30][30][30]; int yz [30][30][30]; int zq [30][30][30]; int qx [30][30][30]; int xz [30][30][30][30]; int yq [30][30][30][30];
int xyzq [30][30][30][30];
int main(){
int n; cin >> n; long long int ans=0;
for (int i=0; i<n; i++){
char a1,b1,c1,d1; cin >> a1 >> b1 >> c1 >> d1;
int a=a1-'A', b=b1-'A', c=d1-'A', d=c1-'A';
ans+=x[a][b]+y[b][c]+z[c][d]+q[d][a];
ans-=(xz [a][b][c][d]+yq[a][b][c][d]);
//cout << ans << " " << zq[a][c][d] << endl;
if (a==c){
ans-=(xy[a][b][c]+zq[a][d][c]);
}
//cout << ans << endl;
if (b==d){
ans-=(yz[b][c][d]+qx[d][a][b]);
}
//cout << ans << endl;
if (a==c && b==d){
ans+=xyzq [a][b][c][d]*3;
}
x[d][c]++; y [a][d]++; z [b][a]++; q [c][b]++;
xy[d][a][d]++; zq[b][a][b]++;
yz[a][b][a]++; qx[c][b][c]++;
xz [d][c][b][a]++; yq [b][a][c][d]++;
xyzq [c][b][d][a]++;
//cout << ans << endl;
}
cout << ans;
}
# | 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... |