Submission #1354494

#TimeUsernameProblemLanguageResultExecution timeMemory
1354494ppmn_6Casino (JOI26_casino)C++20
61 / 100
224 ms844 KiB
#include "Azzurro.h"
#include "bits/stdc++.h"
using namespace std;
using ll = long long;
using ld = long double;
using ull = unsigned long long;

vector<vector<int>> Azzurro(int n, int l, string s) {
  vector<vector<int>> ret(n, vector<int>(n, 0));
  if (l > 33) {
    return ret;
  }
  int cur = 0;
  for (int i = 0; i < n; i++) {
    if (i & 1 || cur == l) {
      continue;
    }
    for (int j = 0; j < n; j++) {
      if (s[cur] == 'B') {
        ret[i][j] = 1;
      }
      cur++;
      if (cur == l) {
        break;
      }
    }
  }
  if (cur < l) {
    ret[n - 1][n - 1] = s[cur] == 'B' ? 1 : 0;
  }
  return ret;
}
#include "Bordeaux.h"
#include "bits/stdc++.h"
using namespace std;
using ll = long long;
using ld = long double;
using ull = unsigned long long;

string Bordeaux(int n, int l, vector<vector<int>> t) {
  string ans(l, 'A');
  if (l > 33) {
    return ans;
  }
  int cur = 0;
  for (int i = 1; i < n; i += 2) {
    int lb = -1, rb = -1;
    for (int j = 0; j < n; j++) {
      if (t[i][j] && lb == -1) {
        lb = j;
      }
      if (!t[i][j] && lb != -1) {
        break;
      }
      if (lb != -1) {
        rb = j;
      }
    }
    if (lb == -1) {
      lb = n - 1;
    }
    for (int j = cur; j <= lb; j++) {
      t[i - 1][j] = 1 - t[i - 1][j];
    }
    cur = rb;
  }
  t[n - 1][n - 1] = 1 - t[n - 1][n - 1];
  cur = 0;
  for (int i = 0; i < n; i++) {
    if (i & 1 || cur == l) {
      continue;
    }
    for (int j = 0; j < n; j++) {
      if (t[i][j]) {
        ans[cur] = 'B';
      }
      cur++;
      if (cur == l) {
        break;
      }
    }
  }
  if (cur < l) {
    ans[cur] = t[n - 1][n - 1] ? 'B' : 'A';
  }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...