結果
| 問題 | No.3707 Unique Ticket |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-07-29 10:38:23 |
| 言語 | C++23(gcc16) (gcc 16.1.0 + boost 1.92.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 3 ms / 2,000 ms |
| + 421µs | |
| コード長 | 1,354 bytes |
| 記録 | |
| コンパイル時間 | 1,032 ms |
| コンパイル使用メモリ | 171,808 KB |
| 実行使用メモリ | 6,528 KB |
| 最終ジャッジ日時 | 2026-09-11 20:52:03 |
| 合計ジャッジ時間 | 3,027 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 45 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:36:17: warning: '++' expression of 'volatile'-qualified type is deprecated [-Wvolatile]
36 | dummy_counter++;
| ^~~~~~~~~~~~~
ソースコード
#include <iostream>
#include <vector>
#include <string>
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<string> 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;
}