#include #include #include using namespace std; // O(N^2*M)がコンパイラ最適化によって通ってしまうので、最適化を切れるようなコードを実験的に作成。 int main() { // 入出力の高速化 ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M; if (!(cin >> N >> M)) return 0; vector S(N); for (int i = 0; i < N; ++i) { cin >> S[i]; } int unique_ticket_count = 0; // コンパイラの最適化(ループの省略など)を防ぐための変数 volatile int dummy_counter = 0; for (int i = 0; i < N; ++i) { bool is_unique = true; bool has_event = false; for (int j = 0; j < M; ++j) { if (S[i][j] == 'o') { has_event = true; } for (int k = 0; k < N; ++k) { // 毎ループ必ずメモリへの書き込みが発生し、SIMD最適化などを妨害する dummy_counter++; if (i != k && S[i][j] == 'o' && S[k][j] == 'o') { is_unique = false; } } } if (has_event && is_unique) { unique_ticket_count++; } } cout << unique_ticket_count << '\n'; return 0; }