結果
| 問題 | No.3210 Fixed Sign Sequense |
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2026-05-04 05:55:30 |
| 言語 | C++11 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 1,393 bytes |
| 記録 | |
| コンパイル時間 | 1,627 ms |
| コンパイル使用メモリ | 183,036 KB |
| 実行使用メモリ | 1,304,352 KB |
| 最終ジャッジ日時 | 2026-05-04 05:55:44 |
| 合計ジャッジ時間 | 3,320 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | MLE * 2 -- * 36 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using vi = vector<int>;
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
#define rep(i,a,b) for(int i = (a); i < (b); i++)
// g++ -std=c++20 -O2 -Wall template.cpp -o test
int check(vi LIS, vi subsequence, int i, int n, int debug){
vi curr;
int maxSize = LIS.size();
rep(j, i+1, n){
curr = LIS;
if(curr.back() < subsequence[j]){
curr.pb(subsequence[j]);
int currSize = curr.size();
maxSize = max(maxSize, max(currSize, check(curr, subsequence, j, n, debug+1)));
}
}
return maxSize;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
string s;
cin >> s;
int loBound = INT_MIN;
int pos = 1;
vi subsequence;
rep(i,0,n){
if(s[i] == '-'){
subsequence.pb(loBound);
loBound++;
} else if(s[i] == '+'){
subsequence.pb(pos);
pos++;
} else subsequence.pb(0);
}
int maxSize = 1;
rep(i,0,n-1){
vi LIS;
LIS.pb(subsequence[i]);
maxSize = max(maxSize, check(LIS, subsequence, i, n, 1));
}
cout << maxSize;
}
vjudge1