#include <bits/stdc++.h>
#define long long long int
#define DEBUG
using namespace std;
// @author: pashka
long calc(vector<string> &a, vector<pair<int, int>> p) {
map<string, int> m1;
map<string, int> m2;
long res = 0;
for (int i = 0; i < (int) a.size(); i++) {
string s1, s2;
for (auto [x, y]: p) {
s1 += a[i][x];
s2 += a[i][y];
}
res += m2[s1];
res += m1[s2];
m1[s1]++;
m2[s2]++;
}
cerr << res << "\n";
return res;
}
int main() {
ios::sync_with_stdio(false);
int n;
cin >> n;
vector<string> a(n);
for (int i = 0; i < n; i++) {
string x, y;
cin >> x >> y;
a[i] = x + y;
}
long res = 0;
res += calc(a, {{0, 2},
{1, 3}});
res += calc(a, {{0, 1},
{2, 3}});
res -= calc(a, {{0, 2},
{1, 3},
{2, 0},
{3, 1}}) / 2;
res -= calc(a, {{0, 1},
{2, 3},
{1, 0},
{3, 2}}) / 2;
res -= calc(a, {{0, 2},
{1, 3},
{1, 0},
{3, 2}});
res -= calc(a, {{0, 2},
{1, 3},
{0, 1},
{2, 3}});
vector<string> a3;
for (string s: a) {
if (s[0] == s[3] && s[1] == s[2]) a3.push_back(s);
}
res += calc(a3, {{0, 2},
{1, 3}}) / 2 * 3;
cout << res << "\n";
return 0;
}
Compilation message
korteles.cpp: In function 'long long int calc(std::vector<std::__cxx11::basic_string<char> >&, std::vector<std::pair<int, int> >)':
korteles.cpp:16:19: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
16 | for (auto [x, y]: p) {
| ^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
320 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
320 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
1 ms |
324 KB |
Output is correct |
6 |
Correct |
4 ms |
468 KB |
Output is correct |
7 |
Correct |
6 ms |
596 KB |
Output is correct |
8 |
Correct |
15 ms |
1108 KB |
Output is correct |
9 |
Correct |
13 ms |
1076 KB |
Output is correct |
10 |
Correct |
14 ms |
972 KB |
Output is correct |
11 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1080 ms |
63472 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
498 ms |
16720 KB |
Output is correct |
3 |
Execution timed out |
1082 ms |
60864 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
324 KB |
Output is correct |
2 |
Correct |
4 ms |
468 KB |
Output is correct |
3 |
Correct |
6 ms |
596 KB |
Output is correct |
4 |
Correct |
15 ms |
1108 KB |
Output is correct |
5 |
Correct |
13 ms |
1076 KB |
Output is correct |
6 |
Correct |
14 ms |
972 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
320 KB |
Output is correct |
11 |
Correct |
1 ms |
340 KB |
Output is correct |
12 |
Execution timed out |
1080 ms |
63472 KB |
Time limit exceeded |
13 |
Halted |
0 ms |
0 KB |
- |