結果
問題 | No.709 優勝可能性 |
ユーザー |
![]() |
提出日時 | 2018-06-30 17:47:16 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,578 bytes |
コンパイル時間 | 633 ms |
コンパイル使用メモリ | 80,240 KB |
実行使用メモリ | 62,644 KB |
最終ジャッジ日時 | 2024-07-01 00:58:48 |
合計ジャッジ時間 | 4,750 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 6 WA * 16 |
ソースコード
#include<iostream>#include<vector>#include<algorithm>#include<functional>#include<queue>#include<stack>#include<set>#include<climits>#include<cstdlib>#include<cmath>#include<string>using namespace std;#define INF 1 << 29#define LL long long intLL const MOD = 1000000007;int main(){cin.tie(0);ios::sync_with_stdio(false);LL n,m;cin >> n >> m;vector<vector<LL>> r(n,vector<LL>(m));for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){cin >> r[i][j];}}vector<vector<LL>> pre(n,vector<LL>(m));vector<LL> tmp(n);vector<vector<LL>> total(n,vector<LL>(m,1));for(int i = 0; i < m; i++){pre[0][i] = 1;tmp[i] = r[0][i];}for(int i = 1; i < n; i++){for(int j = 0; j < m; j++){if(tmp[j] == r[i][j]){pre[i][j] = 2;}else if(tmp[j] < r[i][j]){pre[i][j] = 1;tmp[j] = r[i][j];}else{pre[i][j] = 0;}}}for(int i = 1; i < n; i++){for(int j = 0; j < m; j++){if(pre[i][j] == 0){total[i][j] = total[i-1][j];}else if(pre[i][j] == 2){total[i][j] = total[i-1][j] + 1;}else{total[i][j] = 1;}}}vector<vector<LL>> mer1(n,vector<LL>(m));vector<vector<LL>> mer2(n,vector<LL>(m));for(int i = 0; i < n; i++){mer1[i][0] = total[i][0];mer2[i][0] = pre[i][0];}for(int k = 1; k < m; k++){LL c = 1;mer1[0][k] = 1;mer2[0][k] = 1;for(int i = 1; i < n; i++){if(mer2[i][k-1] == 1 || pre[i][k] == 1){c = 0;}if(mer2[i][k-1] > 0 && pre[i][k] > 0){c++;}mer1[i][k] = mer1[i][k-1] + total[i][k] - c;if(pre[i][k] == 0){if(mer2[i][k-1] == 2){mer2[i][k] = 2;}else{mer2[i][k] = 0;}}else if(pre[i][k] == 2){mer2[i][k] = 2;}else{if(mer2[i][k-1] == 2){mer2[i][k] = 2;}else if(mer2[i][k-1] == 0){mer2[i][k] = 0;}else{mer2[i][k] = 1;}}}}for(int i = 0; i < n; i++){cout << mer1[i][m-1] << endl;}return 0;}