Please sign in first.
Submission #5288178
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define _MACRO(_1, _2, _3, NAME, ...) NAME
#define _repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define _rep(i,n) _repl(i,0,n)
#define rep(...) _MACRO(__VA_ARGS__, _repl, _rep)(__VA_ARGS__)
#define pb push_back
#define all(x) begin(x),end(x)
#define uniq(x) sort(all(x)),(x).erase(unique(all(x)),end(x))
#ifdef LOCAL
#define dbg(...) _dbg(#__VA_ARGS__, __VA_ARGS__)
void _dbg(string){cerr<<endl;}
template<class H,class... T> void _dbg(string s,H h,T... t){int l=s.find(',');cerr<<s.substr(0,l)<<" = "<<h<<", ";_dbg(s.substr(l+1),t...);}
template<class T,class U> ostream& operator<<(ostream &o, const pair<T,U> &p){o<<"("<<p.first<<","<<p.second<<")";return o;}
template<class T> ostream& operator<<(ostream &o, const vector<T> &v){o<<"[";for(T t:v){o<<t<<",";}o<<"]";return o;}
#else
#define dbg(...) {}
#endif
bool solve(){
int n;
string s;
int ox,xo,o,x;
cin>>n>>s>>ox>>xo>>o>>x;
int xs=0, os=0;
rep(i,n){
if(s[i]=='o') os++;
else xs++;
}
if(os != ox+xo+o || xs != ox+xo+x) return false;
vector<int> oxs, xos;
int both = 0;
int oxsum = 0, xosum = 0;
int p=0;
while(p<n){
int k=0;
while(p+k+1<n && s[p+k] != s[p+k+1]) k++;
if(k>0){
k++;
if(k%2==1) both += k/2;
else if(s[p]=='o') {
oxs.push_back(k);
oxsum+= k/2;
}
else {
xos.push_back(k);
xosum += k/2;
}
p += k;
} else p++;
}
auto ok = [&](){
return max(0, ox - oxsum) + max(0, xo - xosum) <= both;
};
dbg(oxsum, xosum);
if(ok()) return true;
if(ox - oxsum > 0 && xo - xosum > 0) return false;
if(ox - oxsum > 0) {
swap(ox, xo);
swap(oxsum, xosum);
swap(xos, oxs);
}
// ox -> xo
sort(all(oxs));
oxs.push_back(1);
while(oxsum > 0){
if(oxs.back() == 1){
oxs.pop_back();
if(oxs.empty()) break;
oxs.back()--;
oxsum--;
continue;
}
oxs.back() -= 2;
oxsum--;
xosum++;
dbg(oxsum, xosum, oxs);
if(ok()) return true;
}
return false;
}
int main(){
cout << (solve() ? "Yes" : "No") << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - ox Concatenation |
| User | tossy |
| Language | C++14 (GCC 5.4.1) |
| Score | 600 |
| Code Size | 2233 Byte |
| Status | AC |
| Exec Time | 11 ms |
| Memory | 772 KiB |
Judge Result
| Set Name | all | sub | sample | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 300 / 300 | 300 / 300 | 0 / 0 | ||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| all | sample01, sample02, sample03, sample04, sub_test01, sub_test02, sub_test03, sub_test04, sub_test05, sub_test06, sub_test07, sub_test08, sub_test09, sub_test10, sub_test11, sub_test12, sub_test13, sub_test14, sub_test15, sub_test16, sub_test17, sub_test18, sub_test19, sub_test20, sub_test21, sub_test22, sub_test23, sub_test24, sub_test25, sub_test26, sub_test27, sub_test28, sub_test29, sub_test30, sub_test31, sub_test32, sub_test33, sub_test34, sub_test35, test36, test37, test38, test39, test40, test41, test42, test43, test44, test45, test46, test47, test48, test49, test50, test51, test52, test53, test54, test55, test56, test57, test58, test59, test60, test61, test62, test63, test64, test65, test66, test67 |
| sub | sub_test01, sub_test02, sub_test03, sub_test04, sub_test05, sub_test06, sub_test07, sub_test08, sub_test09, sub_test10, sub_test11, sub_test12, sub_test13, sub_test14, sub_test15, sub_test16, sub_test17, sub_test18, sub_test19, sub_test20, sub_test21, sub_test22, sub_test23, sub_test24, sub_test25, sub_test26, sub_test27, sub_test28, sub_test29, sub_test30, sub_test31, sub_test32, sub_test33, sub_test34, sub_test35 |
| sample | sample01, sample02, sample03, sample04 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample01 | AC | 1 ms | 256 KiB |
| sample02 | AC | 1 ms | 256 KiB |
| sample03 | AC | 1 ms | 256 KiB |
| sample04 | AC | 1 ms | 256 KiB |
| sub_test01 | AC | 1 ms | 256 KiB |
| sub_test02 | AC | 1 ms | 256 KiB |
| sub_test03 | AC | 1 ms | 256 KiB |
| sub_test04 | AC | 1 ms | 256 KiB |
| sub_test05 | AC | 1 ms | 256 KiB |
| sub_test06 | AC | 1 ms | 256 KiB |
| sub_test07 | AC | 1 ms | 256 KiB |
| sub_test08 | AC | 1 ms | 256 KiB |
| sub_test09 | AC | 1 ms | 256 KiB |
| sub_test10 | AC | 1 ms | 256 KiB |
| sub_test11 | AC | 1 ms | 256 KiB |
| sub_test12 | AC | 1 ms | 256 KiB |
| sub_test13 | AC | 1 ms | 256 KiB |
| sub_test14 | AC | 1 ms | 256 KiB |
| sub_test15 | AC | 1 ms | 256 KiB |
| sub_test16 | AC | 1 ms | 256 KiB |
| sub_test17 | AC | 1 ms | 256 KiB |
| sub_test18 | AC | 1 ms | 256 KiB |
| sub_test19 | AC | 1 ms | 256 KiB |
| sub_test20 | AC | 1 ms | 256 KiB |
| sub_test21 | AC | 1 ms | 256 KiB |
| sub_test22 | AC | 1 ms | 256 KiB |
| sub_test23 | AC | 1 ms | 256 KiB |
| sub_test24 | AC | 1 ms | 256 KiB |
| sub_test25 | AC | 1 ms | 256 KiB |
| sub_test26 | AC | 1 ms | 256 KiB |
| sub_test27 | AC | 1 ms | 256 KiB |
| sub_test28 | AC | 1 ms | 256 KiB |
| sub_test29 | AC | 1 ms | 256 KiB |
| sub_test30 | AC | 1 ms | 256 KiB |
| sub_test31 | AC | 1 ms | 256 KiB |
| sub_test32 | AC | 1 ms | 256 KiB |
| sub_test33 | AC | 1 ms | 256 KiB |
| sub_test34 | AC | 1 ms | 256 KiB |
| sub_test35 | AC | 1 ms | 256 KiB |
| test36 | AC | 6 ms | 640 KiB |
| test37 | AC | 8 ms | 640 KiB |
| test38 | AC | 5 ms | 512 KiB |
| test39 | AC | 3 ms | 384 KiB |
| test40 | AC | 8 ms | 640 KiB |
| test41 | AC | 5 ms | 512 KiB |
| test42 | AC | 3 ms | 384 KiB |
| test43 | AC | 4 ms | 384 KiB |
| test44 | AC | 7 ms | 640 KiB |
| test45 | AC | 5 ms | 512 KiB |
| test46 | AC | 8 ms | 640 KiB |
| test47 | AC | 8 ms | 640 KiB |
| test48 | AC | 8 ms | 640 KiB |
| test49 | AC | 8 ms | 640 KiB |
| test50 | AC | 8 ms | 640 KiB |
| test51 | AC | 8 ms | 640 KiB |
| test52 | AC | 8 ms | 640 KiB |
| test53 | AC | 10 ms | 772 KiB |
| test54 | AC | 10 ms | 772 KiB |
| test55 | AC | 8 ms | 640 KiB |
| test56 | AC | 8 ms | 640 KiB |
| test57 | AC | 8 ms | 640 KiB |
| test58 | AC | 8 ms | 640 KiB |
| test59 | AC | 8 ms | 640 KiB |
| test60 | AC | 8 ms | 640 KiB |
| test61 | AC | 8 ms | 640 KiB |
| test62 | AC | 8 ms | 640 KiB |
| test63 | AC | 11 ms | 772 KiB |
| test64 | AC | 10 ms | 772 KiB |
| test65 | AC | 8 ms | 640 KiB |
| test66 | AC | 8 ms | 640 KiB |
| test67 | AC | 8 ms | 640 KiB |