Submission #293860

#TimeUsernameProblemLanguageResultExecution timeMemory
293860BTheroMonochrome Points (JOI20_monochrome)C++17
4 / 100
2085 ms384 KiB
// chrono::system_clock::now().time_since_epoch().count()
#include<bits/stdc++.h>

#define pb push_back
#define eb emplace_back
#define mp make_pair
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define debug(x) cerr << #x << " = " << x << endl;

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

const int MAXN = 300 + 5;
const int INF = (int)1e9;

char s[2 * MAXN];
int n, ans;
vector<char> vec;

void rec(int p, int cur = 0) {
  if (p == 2 * n) {
    if (vec.empty()) {
      ans = max(ans, cur);
    }
    
    return;
  }
    
  vec.pb(s[p]);
  rec(p + 1, cur);
  vec.pop_back();
  vector<char>::iterator it;
  
  if (s[p] == 'W') {
    it = find(all(vec), 'B');
  }
  else {
    it = find(all(vec), 'W');
  }
      
  if (it != vec.end()) {
    vector<char> mem = vec;
    int ncur = cur + vec.end() - it - 1;
    vec.erase(it);
    rec(p + 1, ncur);
    vec = mem;
  }    
}

void solve() {
  scanf("%d", &n);
  scanf("%s", s);
  rec(0);
  printf("%d\n", ans);
}

int main() {
  int tt = 1;
  
  while (tt--) {
    solve();
  }

  return 0;
}

Compilation message (stderr)

monochrome.cpp: In function 'void solve()':
monochrome.cpp:55:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   55 |   scanf("%d", &n);
      |   ~~~~~^~~~~~~~~~
monochrome.cpp:56:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   56 |   scanf("%s", s);
      |   ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...