Submission #13124870
Source Code Expand
#include <bits/stdc++.h> #define ll long long #define fastIO cout << fixed << setprecision(12), ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) using namespace std; const int N = 1e6 + 1; bool taken[N]; bool cmp(pair<int, int> a, pair<int, int> b) { if(a.second == b.second) return a.first > b.first; return a.second < b.second; } bool cmp2(pair<int, int> a, pair<int, int> b) { // if(a.first - a.second == b.first - a.second) // return a.second < b.second; // return a.first - a.second > b.first - a.second; if(a.second == b.second) return a.first > b.first; return a.second > b.second; } int main() { fastIO; #ifdef LOCAL freopen("input.in", "rt", stdin); #endif int n; cin >> n; string str; int open = 0, closed = 0; vector<pair<int, int>> vec; for (int i = 0; i < n; ++i) { cin >> str; int cnt = 0, minus = 0; for (int i = 0; i < (int)str.size(); ++i) { if(str[i] == '(') ++cnt; else --cnt; if(cnt < 0) ++minus, cnt = 0; } if(minus) { if(cnt) vec.push_back({cnt, minus}); else closed += abs(minus); } else { open += cnt; } } int total = open; sort(vec.begin(), vec.end(), cmp); for (int i = 0; i < (int)vec.size(); ++i) { if(vec[i].second > vec[i].first) continue; if(total >= vec[i].second) { total -= vec[i].second; total += vec[i].first; taken[i] = 1; } } vector<pair<int, int>> vv; for (int i = 0; i < (int)vec.size(); ++i) { if(taken[i]) continue; vv.push_back(vec[i]); } sort(vv.begin(), vv.end(), cmp2); for (int i = 0; i < (int)vv.size(); ++i) { total -= vv[i].second; if(total < 0) { cout << "No"; return 0; } total += vv[i].first; } total -= closed; if(total == 0) cout << "Yes"; else cout << "No"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Bracket Sequencing |
User | it_wasnt_me |
Language | C++ (GCC 9.2.1) |
Score | 600 |
Code Size | 1851 Byte |
Status | AC |
Exec Time | 52 ms |
Memory | 7700 KiB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01, sample_02, sample_03, sample_04 |
All | random_01, random_02, random_03, random_04, random_05, random_06, random_07, random_08, random_09, random_10, random_11, random_12, random_13, random_21, random_22, random_23, random_31, random_32, random_33, random_41, random_42, random_43, random_51, random_52, random_53, random_61, random_62, random_63, sample_01, sample_02, sample_03, sample_04 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
random_01 | AC | 33 ms | 4160 KiB |
random_02 | AC | 49 ms | 3760 KiB |
random_03 | AC | 41 ms | 4020 KiB |
random_04 | AC | 52 ms | 3484 KiB |
random_05 | AC | 51 ms | 3616 KiB |
random_06 | AC | 29 ms | 3596 KiB |
random_07 | AC | 13 ms | 3620 KiB |
random_08 | AC | 18 ms | 3572 KiB |
random_09 | AC | 11 ms | 3632 KiB |
random_10 | AC | 30 ms | 3496 KiB |
random_11 | AC | 2 ms | 3620 KiB |
random_12 | AC | 3 ms | 3504 KiB |
random_13 | AC | 2 ms | 3572 KiB |
random_21 | AC | 2 ms | 3620 KiB |
random_22 | AC | 2 ms | 3620 KiB |
random_23 | AC | 2 ms | 3552 KiB |
random_31 | AC | 2 ms | 3568 KiB |
random_32 | AC | 2 ms | 3496 KiB |
random_33 | AC | 2 ms | 3568 KiB |
random_41 | AC | 2 ms | 3568 KiB |
random_42 | AC | 2 ms | 3496 KiB |
random_43 | AC | 2 ms | 3604 KiB |
random_51 | AC | 2 ms | 3484 KiB |
random_52 | AC | 2 ms | 3492 KiB |
random_53 | AC | 2 ms | 3572 KiB |
random_61 | AC | 34 ms | 5320 KiB |
random_62 | AC | 40 ms | 7316 KiB |
random_63 | AC | 50 ms | 7700 KiB |
sample_01 | AC | 2 ms | 3560 KiB |
sample_02 | AC | 2 ms | 3652 KiB |
sample_03 | AC | 2 ms | 3612 KiB |
sample_04 | AC | 2 ms | 3536 KiB |