Submission #962375

#TimeUsernameProblemLanguageResultExecution timeMemory
9623750npataMonochrome Points (JOI20_monochrome)C++17
0 / 100
1 ms348 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define vec vector #define pi pair<int, int> #define fst first #define snd second #define pb push_back int n; string s; int mes(vec<pi> p) { int res = 0; int j = p[0].fst; int k = p[0].fst; int cntw = 1; int cntb = 0; for(int i = 0; i<n; i++) { while(k != p[i].fst) { cntw -= s[k]=='W'; cntb -= s[k] == 'B'; k+=1; k %= 2*n; } while(j != p[i].snd) { j += 1; j %= 2*n; cntw += s[j]=='W'; cntb += s[j] == 'B'; } int rw = cntw-1; int orb = n-cntb; res += min(rw, orb); } return res; } int32_t main() { cin >> n; cin >> s; vec<int> b(0); vec<int> w(0); for(int i = 0; i<s.size(); i++) { if(s[i] == 'W') { w.pb(i); } else { b.pb(i); } } int ans = 0; int li = (w[0]+n)%(2*n); int ri = (w[0]+n+1)%(2*n); while(s[li] != 'B') { li += 2*n-1; li %= 2*n; } while(s[ri] != 'B') { ri += 1; ri %= 2*n; } int lii = 0; int rii = 0; for(int i = 0; i<n; i++) { if(b[i] == li) lii = i; if(b[i] == ri) rii = i; } vec<int> cand{lii, rii}; for(int i : cand) { vec<pi> p; for(int j = 0; j<n; j++) { p.pb({w[j], b[(j+i)%n]}); } int res = mes(p); ans = max(res, ans); } cout << ans << '\n'; }

Compilation message (stderr)

monochrome.cpp: In function 'int32_t main()':
monochrome.cpp:50:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |  for(int i = 0; i<s.size(); i++) {
      |                 ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...