lang.cpp:17:2: error: extended character is not valid in an identifier
17 | gp_hash_table<T, int, Hash> m;
| ^
lang.cpp:17:5: error: extended character is not valid in an identifier
17 | gp_hash_table<T, int, Hash> m;
| ^
lang.cpp:18:2: error: extended character is not valid in an identifier
18 | set<pair<int, T>> inv;
| ^
lang.cpp:17:2: error: '\U000000a0' does not name a type
17 | gp_hash_table<T, int, Hash> m;
| ^
lang.cpp:18:2: error: '\U000000a0set' does not name a type
18 | set<pair<int, T>> inv;
| ^~~~
lang.cpp: In member function 'double Data<T, Hash, MAX>::operator&(const Data<T, Hash, MAX>&) const':
lang.cpp:22:21: error: 'm' was not declared in this scope
22 | for (auto [k, v]: m) {
| ^
lang.cpp:26:8: error: 'm' was not declared in this scope
26 | if (m.find(k) == m.end()) ret += magic((double) v / o.tot);
| ^
lang.cpp: In member function 'void Data<T, Hash, MAX>::operator+=(const Data<T, Hash, MAX>&)':
lang.cpp:33:11: error: 'inv' was not declared in this scope; did you mean 'int'?
33 | inv.erase({m[k], k});
| ^~~
| int
lang.cpp:33:22: error: 'm' was not declared in this scope
33 | inv.erase({m[k], k});
| ^
lang.cpp:37:14: error: 'inv' was not declared in this scope; did you mean 'int'?
37 | while (inv.size() > MAX) {
| ^~~
| int
lang.cpp:39:11: error: 'm' was not declared in this scope
39 | m.erase(inv.begin()->second);
| ^
lang.cpp: In constructor 'Profile::Profile(int*)':
lang.cpp:60:16: error: 'struct Data<int, std::hash<int>, 100>' has no member named 'm'
60 | sing.m[arr[i]]++;
| ^
lang.cpp:61:23: error: 'struct Data<std::pair<int, int>, hash2, 100>' has no member named 'm'
61 | if (i) doub.m[{arr[i - 1], arr[i]}]++;
| ^
lang.cpp:62:27: error: 'struct Data<std::array<int, 3>, hash3, 100>' has no member named 'm'
62 | if (i >=2) trip.m[{arr[i - 2], arr[i - 1], arr[i]}];
| ^
lang.cpp:64:30: error: 'struct Data<int, std::hash<int>, 100>' has no member named 'm'
64 | for (auto [k, v]: sing.m) sing.inv.emplace(v, k);
| ^
lang.cpp:64:38: error: 'struct Data<int, std::hash<int>, 100>' has no member named 'inv'
64 | for (auto [k, v]: sing.m) sing.inv.emplace(v, k);
| ^~~
lang.cpp:65:30: error: 'struct Data<std::pair<int, int>, hash2, 100>' has no member named 'm'
65 | for (auto [k, v]: doub.m) doub.inv.emplace(v, k);
| ^
lang.cpp:65:38: error: 'struct Data<std::pair<int, int>, hash2, 100>' has no member named 'inv'
65 | for (auto [k, v]: doub.m) doub.inv.emplace(v, k);
| ^~~
lang.cpp:66:36: error: 'struct Data<std::array<int, 3>, hash3, 100>' has no member named 'm'
66 | for (auto [k, v]: trip.m) trip.inv.emplace(v, k);
| ^
lang.cpp:66:44: error: 'struct Data<std::array<int, 3>, hash3, 100>' has no member named 'inv'
66 | for (auto [k, v]: trip.m) trip.inv.emplace(v, k);
| ^~~
lang.cpp: In instantiation of 'double Data<T, Hash, MAX>::operator&(const Data<T, Hash, MAX>&) const [with T = int; Hash = std::hash<int>; int MAX = 100]':
lang.cpp:74:20: required from here
lang.cpp:23:26: error: use of 'v' before deduction of 'auto'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ^
lang.cpp:23:39: error: 'const struct Data<int, std::hash<int>, 100>' has no member named 'm'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ~~^
lang.cpp:23:46: error: use of 'k' before deduction of 'auto'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ^
lang.cpp:23:74: error: 'const struct Data<int, std::hash<int>, 100>' has no member named 'm'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ~~^
lang.cpp:25:23: error: 'const struct Data<int, std::hash<int>, 100>' has no member named 'm'
25 | for (auto [k, v]: o.m) {
| ~~^
lang.cpp: In instantiation of 'double Data<T, Hash, MAX>::operator&(const Data<T, Hash, MAX>&) const [with T = std::pair<int, int>; Hash = hash2; int MAX = 100]':
lang.cpp:74:38: required from here
lang.cpp:23:26: error: use of 'v' before deduction of 'auto'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ^
lang.cpp:23:39: error: 'const struct Data<std::pair<int, int>, hash2, 100>' has no member named 'm'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ~~^
lang.cpp:23:46: error: use of 'k' before deduction of 'auto'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ^
lang.cpp:23:74: error: 'const struct Data<std::pair<int, int>, hash2, 100>' has no member named 'm'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ~~^
lang.cpp:25:23: error: 'const struct Data<std::pair<int, int>, hash2, 100>' has no member named 'm'
25 | for (auto [k, v]: o.m) {
| ~~^
lang.cpp: In instantiation of 'double Data<T, Hash, MAX>::operator&(const Data<T, Hash, MAX>&) const [with T = std::array<int, 3>; Hash = hash3; int MAX = 100]':
lang.cpp:74:56: required from here
lang.cpp:23:26: error: use of 'v' before deduction of 'auto'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ^
lang.cpp:23:39: error: 'const struct Data<std::array<int, 3>, hash3, 100>' has no member named 'm'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ~~^
lang.cpp:23:46: error: use of 'k' before deduction of 'auto'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ^
lang.cpp:23:74: error: 'const struct Data<std::array<int, 3>, hash3, 100>' has no member named 'm'
23 | ret += magic((double) v / tot - (o.m.find(k) != m.end() ? (double) *o.m.find(k) / o.tot : 0));
| ~~^
lang.cpp:25:23: error: 'const struct Data<std::array<int, 3>, hash3, 100>' has no member named 'm'
25 | for (auto [k, v]: o.m) {
| ~~^
lang.cpp: In instantiation of 'void Data<T, Hash, MAX>::operator+=(const Data<T, Hash, MAX>&) [with T = int; Hash = std::hash<int>; int MAX = 100]':
lang.cpp:78:17: required from here
lang.cpp:32:24: error: 'const struct Data<int, std::hash<int>, 100>' has no member named 'm'
32 | for (auto &[k, v]: o.m) {
| ~~^
lang.cpp: In instantiation of 'void Data<T, Hash, MAX>::operator+=(const Data<T, Hash, MAX>&) [with T = std::pair<int, int>; Hash = hash2; int MAX = 100]':
lang.cpp:79:11: required from here
lang.cpp:32:24: error: 'const struct Data<std::pair<int, int>, hash2, 100>' has no member named 'm'
lang.cpp: In instantiation of 'void Data<T, Hash, MAX>::operator+=(const Data<T, Hash, MAX>&) [with T = std::array<int, 3>; Hash = hash3; int MAX = 100]':
lang.cpp:80:17: required from here
lang.cpp:32:24: error: 'const struct Data<std::array<int, 3>, hash3, 100>' has no member named 'm'