Submission #148611

#TimeUsernameProblemLanguageResultExecution timeMemory
148611CHT를 사랑하는 모임 (#200)HicCup (FXCUP4_hiccup)C++17
100 / 100
100 ms4352 KiB
#include "hiccup.h" #include <bits/stdc++.h> #define all(v) (v).begin(), (v).end() #define sortv(v) sort(all(v)) #define uniqv(v) (v).erase(unique(all(v)), (v).end()) #define pb push_back #define FI first #define SE second #define lb lower_bound #define ub upper_bound #define mp make_pair #define test 1 #define TEST if(test) using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; const int MOD = 1000000007; // 998244353 const int INF = 2e9; const ll INFLL = 1e18; const int MAX_N = 1; ll cnt, N; string str; vector<pii> v; bool chk(ll x){ bool chk = false; while(!v.empty()){ v.pop_back(); } for(int i=0; i<N; i++){ if(str[i]=='H'){ v.pb({1, 0}); }else if(str[i]=='C'){ while(1){ if(v.empty()) return false; pii now = v.back(); v.pop_back(); if(now.first==1){ v.pb({2, 0}); break; }else if(now.first==2){ if(now.second<x){ return false; } } } }else{ while(1){ if(v.empty()) return false; pii now = v.back(); v.pop_back(); if(now.first==1){ return false; } if(!v.empty() && v.back().first==2 && now.second>=x){ continue; } now.second++; v.pb(now); break; } } } while(!v.empty()){ pii now = v.back(); v.pop_back(); if(now.first==1 || now.second<x) return false; } return v.empty(); } int HicCup(string S) { str = S; N = S.size(); /*for(int i=0; i<N; i++){ if(S[i]=='H'){ cnt++; }else if(S[i]=='C'){ if(cnt==0){ return -1; } cnt--; } } if(cnt!=0){ return -1; }*/ int s = 0, e = S.size()-1, m; while(s<e){ m = (s+e)/2+1; if(chk((ll)m)){ s = m; }else{ e = m-1; } } if(!chk(s)){ return -1; } return s; }

Compilation message (stderr)

hiccup.cpp: In function 'bool chk(ll)':
hiccup.cpp:36:7: warning: unused variable 'chk' [-Wunused-variable]
  bool chk = false;
       ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...