結果
問題 | No.709 優勝可能性 |
ユーザー |
![]() |
提出日時 | 2018-06-30 18:55:51 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 536 ms / 3,500 ms |
コード長 | 1,803 bytes |
コンパイル時間 | 859 ms |
コンパイル使用メモリ | 88,440 KB |
実行使用メモリ | 7,808 KB |
最終ジャッジ日時 | 2024-07-01 00:59:34 |
合計ジャッジ時間 | 5,991 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <deque>#include <iostream>#include <map>#include <queue>#include <set>#include <stack>#include <string>#include <utility>#include <vector>#define CK(N, A, B) (A <= N && N < B)#define REP(i, a, b) for (int i = a; i < b; i++)#define RREP(i, a, b) for (int i = (b - 1); a <= i; i--)#define F first#define S second#define ll long longconst int INF = 1e9;const long long LLINF = 1e18;using namespace std;int dy[] = {0,1,0,-1};int dx[] = {1,0,-1,0};int dy8[] = {0,1,1,1,0,-1,-1,-1};int dx8[] = {1,1,0,-1,-1,-1,0,1};/*==================================================*//*variable*/int N, M;int R[100010][20];int d[100010];stack< pair<int, int> > stk[15]; //値、番号/*==================================================*//*function*//*==================================================*/int main() {cin>>N>>M;int cnt = 0;REP(i,0,N){REP(j,0,M){int r;cin>>r;if(!stk[j].empty()){if(r > stk[j].top().first){while(!stk[j].empty()) {d[stk[j].top().second]--;if(d[stk[j].top().second] == 0) cnt--;stk[j].pop();}d[i]++;if(d[i] == 1) cnt++;stk[j].push({r, i});}else if(r == stk[j].top().first){d[i]++;if(d[i] == 1) cnt++;stk[j].push({r, i});}}else{d[i]++;if(d[i] == 1) cnt++;stk[j].push({r, i});}}cout<<cnt<<endl;}return 0;}