제출 #1003712

#제출 시각아이디문제언어결과실행 시간메모리
1003712HanksburgerLamps (JOI19_lamps)C++17
4 / 100
16 ms8872 KiB
#include <bits/stdc++.h> using namespace std; vector<pair<int, int> > tmp; vector<int> vec; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, sz, state=0, ans=0; cin >> n; string s, t; cin >> s >> t; for (int i=0; i<n; i++) { if (i && t[i]!=t[i-1]) { vec.push_back(state); state=0; } if (state%2==0 && s[i]==t[i]) state++; else if (state<2 && s[i]!=t[i]) state+=2; } vec.push_back(state); sz=vec.size(); for (int i=0; i<sz; i++) { if (vec[i]==1) { int sz0=tmp.size(), cnt=0; for (int j=0; j<sz0; j++) { //cout << tmp[j].first << ' ' << tmp[j].second << '\n'; if (tmp[j].first==3 || tmp[j].second==1 || (tmp[j].second==2 && j && j<=sz0-2) || (tmp[j].second==3 && j && j<=sz0-2)) cnt+=tmp[j].second; else { if (!cnt) ans++; else ans+=cnt/2+2; cnt=0; } } if (cnt) ans+=cnt/2+1; tmp.clear(); } else if (tmp.empty() || vec[i]!=tmp.back().first) tmp.push_back({vec[i], 1}); else tmp.back().second++; } int sz0=tmp.size(), cnt=0; for (int j=0; j<sz0; j++) { //cout << tmp[j].first << ' ' << tmp[j].second << '\n'; if (tmp[j].first==3 || tmp[j].second==1 || (tmp[j].second==2 && j && j<=sz0-2) || (tmp[j].second==3 && j && j<=sz0-2)) cnt+=tmp[j].second; else { if (!cnt) ans++; else ans+=cnt/2+2; cnt=0; } } if (cnt) ans+=cnt/2+1; cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...