結果
問題 |
No.1095 Smallest Kadomatsu Subsequence
|
ユーザー |
![]() |
提出日時 | 2020-06-27 19:02:46 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,185 bytes |
コンパイル時間 | 1,636 ms |
コンパイル使用メモリ | 168,120 KB |
実行使用メモリ | 11,264 KB |
最終ジャッジ日時 | 2024-07-05 19:27:03 |
合計ジャッジ時間 | 2,950 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 WA * 11 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define hell 1000000007 #define PI acos(-1.0) #define S second #define F first #define pb push_back #define endl '\n' #define lli long long int #define li long int #define ld long double #define all(v) v.begin(), v.end() #define run(j, n) for(auto ii=j;ii!=n;ii++) #define out(j, n) for(auto ii=j;ii!=n;ii++) cout<<(*ii)<<" "; #define sout(ar, i, n) for(int j=i;j<n;j++) cout<<ar[j]<<" "; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout << fixed << showpoint; cout << setprecision(11); int n;cin>>n; lli ar[n];run(0, n) cin>>ar[ii]; lli v1[2][n], v2[2][n]; v1[0][0]=ar[0]; v1[1][0]=ar[0]; v2[0][n-1]=ar[n-1]; v2[1][n-1]=ar[n-1]; for(int i=1;i<n;i++) { v1[0][i]=min(v1[0][i-1], ar[i]); v1[1][i]=max(v1[1][i-1], ar[i]); } for(int i=n-2;i>=0;i--) { v2[0][i]=min(v2[0][i+1], ar[i]); v2[1][i]=max(v2[1][i+1], ar[i]); } lli ans = LLONG_MAX; for(int i=0;i<n;i++) { if(ar[i]!=v1[0][i] && ar[i]!=v2[0][i]) { ans = min(ans, ar[i]+v1[0][i]+v2[0][i]); } if(ar[i]!=v1[1][i] && ar[i]!=v2[1][i]) { ans = min(ans, ar[i]+v1[1][i]+v2[1][i]); } } if(ans==LLONG_MAX) ans = -1; cout<<ans; return 0; }