結果
問題 |
No.1095 Smallest Kadomatsu Subsequence
|
ユーザー |
|
提出日時 | 2024-09-11 16:46:00 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,043 bytes |
コンパイル時間 | 2,259 ms |
コンパイル使用メモリ | 203,284 KB |
最終ジャッジ日時 | 2025-02-24 06:40:28 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 WA * 11 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll=long long; int cnt(string S){ int k=0,res=0; for(auto s:S){ if(s=='o')k++; else{ res=max(res,k); k=0; } } return max(res,k); } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int N; cin>>N; vector<int> A(N); for(int i=0;i<N;i++)cin>>A[i]; set<int> L,R; for(int i=1;i<N;i++)R.insert(A[i]); L.insert(A[0]); int an=1e9+10; for(int i=1;i<N-1;i++){ R.erase(A[i]); L.insert(A[i]); auto r=*(prev(R.end())); auto l=*(prev(L.end())); if(r<=A[i]||l<=A[i])continue; an=min(an,A[i]+r+l); } L.clear(); R.clear(); L.insert(A[0]); for(int i=1;i<N;i++)R.insert(A[i]); for(int i=1;i<N-1;i++){ R.erase(A[i]); L.insert(A[i]); auto r=*(R.begin()); auto l=*(L.begin()); if(r>=A[i]||l>=A[i])continue; an=min(an,A[i]+r+l); } cout<<(an<1e9?an:-1)<<endl; }