This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 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];
		//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];
		}
		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]++;
		xyzq [d][c][b][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... |