제출 #1127152

#제출 시각아이디문제언어결과실행 시간메모리
1127152abushbandit_Treasure (info1cup19_treasure)C++20
100 / 100
3 ms1104 KiB
//~ how can i make it 10% more fun? //~ what it would take for me to enjoy this? #include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define all(x) x.begin(), x.end() #define ff first #define ss second template <class F, class _S> bool chmin(F &u, const _S &v){ bool flag = false; if ( u > v ){ u = v; flag |= true; } return flag; } template <class F, class _S> bool chmax(F &u, const _S &v){ bool flag = false; if ( u < v ){ u = v; flag |= true; } return flag; } int exp(int x, int n, int m) { x %= m; int res = 1; while (n > 0) { if (n & 1) { res = (res * x) % m; } x = (x * x) % m; n >>= 1; } return res; } int power(int x, int n) { int res = 1; while (n > 0) { if (n & 1) { res = res * x ; } x = x * x ; n >>= 1; } return res; } const int maxn = 2e5 + 1; const int mod = 1e9 + 7; const int inf = 1e18; void add(int &a, int b) { if (a + b >= mod) a = (a + b) - mod; else a += b; } void sub(int &a, int b) { if (a - b < 0) a = (a - b) + mod; else a -= b;; } template<typename T> using matrix = vector<vector<T>>; namespace FAST { template<typename T, typename F> istream &operator>>(istream &cin, pair<T, F> &p) { cin >> p.first >> p.second; return cin; } template<typename T, typename F> ostream &operator<<(ostream &cout, pair<T, F> &p) { cout << p.first << ' ' << p.second; return cout; } template<typename T> istream &operator>>(istream &cin, vector<T> &a) { for (T &i: a) cin >> i; return cin; } template<typename T> ostream &operator<<(ostream &cout, vector<T> &a) { for (T i: a) cout << i << ' '; return cout; } template<typename T> istream &operator>>(istream &cin, deque<T> &a) { for (T &i: a) cin >> i; return cin; } template<typename T> ostream &operator<<(ostream &cout, deque<T> &a) { for (T i: a) cout << i << ' '; return cout; } } using namespace FAST; void solve() { int n, k; cin >> n >> k; string s; cin >> s; vector<char> ans; vector<int> v; for(int i = 0;i < s.size();i++) { if(i == 0) { ans.push_back(s[i]); v.push_back(1); } else { if(ans.back() == s[i]) { v.push_back(v.back() + 1); } else { v.push_back(1); } ans.push_back(s[i]); } if(!v.empty() && v.back() == k) { char c = ans.back(); while(!ans.empty() && ans.back() == c) { ans.pop_back(); v.pop_back(); } } } for(auto i : ans) cout << i; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0),cout.tie(0); int t = 1; //~ cin >> t; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...