結果
問題 | No.709 優勝可能性 |
ユーザー | Luzhiled |
提出日時 | 2018-03-30 00:58:56 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 638 ms / 3,500 ms |
コード長 | 882 bytes |
コンパイル時間 | 1,357 ms |
コンパイル使用メモリ | 169,952 KB |
実行使用メモリ | 15,360 KB |
最終ジャッジ日時 | 2024-06-26 00:11:33 |
合計ジャッジ時間 | 6,731 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; vector<vector<int>> r(n, vector<int>(m)); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cin >> r[i][j]; } } map<int, int> ushi[10]; for (int j = 0; j < m; ++j) { int maxr = 0; for (int i = 0; i < n; ++i) { if (r[i][j] >= maxr) { ushi[j][maxr] = i - 1; maxr = r[i][j]; ushi[j][maxr] = i; } } ushi[j][maxr] = n; } vector<int> ans(n + 1); for (int i = 0; i < n; ++i) { int idx = -1; for (int j = 0; j < m; ++j) { if (ushi[j].count(r[i][j]) && i <= ushi[j][r[i][j]]) { idx = max(idx, ushi[j][r[i][j]]); } } if (~idx) { ans[i]++; ans[idx + 1]--; } } for (int i = 0; i < n; ++i) { cout << ans[i] << endl; ans[i + 1] += ans[i]; } }