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 <stdio.h>
#define A 26
#define M 531441 /* M = (A + 1)^4 */
int idx(int a, int b, int c, int d) {
return ((a * (A + 1) + b) * (A + 1) + c) * (A + 1) + d;
}
int main() {
static int kk[M];
int n, a, b, c, d, e, f, g, h, u, w;
long long ans;
scanf("%d", &n);
while (n--) {
static char s[4], t[4];
int u;
scanf("%s%s", s, t);
a = s[0] - 'A' + 1, b = s[1] - 'A' + 1;
c = t[0] - 'A' + 1, d = t[1] - 'A' + 1;
for (u = 0; u < 16; u++)
kk[idx((u & 1) != 0 ? a : 0, (u & 2) != 0 ? b : 0, (u & 4) != 0 ? c : 0, (u & 8) != 0 ? d : 0)]++;
}
ans = 0;
for (a = 1; a <= A; a++)
for (b = 1; b <= A; b++)
for (c = 1; c <= A; c++)
for (d = 1; d <= A; d++)
if (kk[idx(a, b, c, d)] > 0) {
for (u = 1; u < 16; u++) {
e = 0, f = 0;
g = 0, h = 0;
w = -1;
if ((u & 1) != 0) {
if (e == 0 || e == c)
e = c;
else
continue;
if (f == 0 || f == d)
f = d;
else
continue;
w = -w;
}
if ((u & 2) != 0) {
if (g == 0 || g == a)
g = a;
else
continue;
if (h == 0 || h == b)
h = b;
else
continue;
w = -w;
}
if ((u & 4) != 0) {
if (e == 0 || e == b)
e = b;
else
continue;
if (g == 0 || g == d)
g = d;
else
continue;
w = -w;
}
if ((u & 8) != 0) {
if (f == 0 || f == a)
f = a;
else
continue;
if (h == 0 || h == c)
h = c;
else
continue;
w = -w;
}
ans += kk[idx(e, f, g, h)] * w;
}
if (a == c && b == d || a == b && c == d)
ans--;
}
ans /= 2;
printf("%lld\n", ans);
return 0;
}
Compilation message (stderr)
korteles.c: In function 'main':
korteles.c:82:18: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
82 | if (a == c && b == d || a == b && c == d)
| ~~~~~~~^~~~~~~~~
korteles.c:15:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
15 | scanf("%d", &n);
| ^~~~~~~~~~~~~~~
korteles.c:20:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
20 | scanf("%s%s", s, t);
| ^~~~~~~~~~~~~~~~~~~
# | 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... |