Submission #1205544

#TimeUsernameProblemLanguageResultExecution timeMemory
1205544avighnaBuilding 4 (JOI20_building4)C11
11 / 100
33 ms16052 KiB
#include <stdio.h> #include <stdbool.h> // #define N 500001 #define N 2001 int a[N << 1], b[N << 1]; bool dp[N << 1][N][2]; char res[N << 1]; int main() { int n; scanf("%d", &n); for (int i = 1; i <= 2 * n; ++i) { scanf("%d", &a[i]); } for (int i = 1; i <= 2 * n; ++i) { scanf("%d", &b[i]); } dp[0][0][0] = dp[0][0][1] = true; int *arr[] = {b, a}; for (int i = 1; i <= n << 1; ++i) { for (int j = 0; j <= n; ++j) { for (int k = 0; k < 2; ++k) { if (j - k >= 0) { dp[i][j][k] = (dp[i - 1][j - k][1] && a[i - 1] <= arr[k][i]) || (dp[i - 1][j - k][0] && b[i - 1] <= arr[k][i]); } } } } if (!dp[n << 1][n][0] && !dp[n << 1][n][1]) { printf("-1\n"); return 0; } for (int i = n << 1, j = n, k = dp[n << 1][n][1]; i >= 1; --i) { res[i] = 'B' - k; if (dp[i - 1][j - k][1] && a[i - 1] <= arr[k][i]) { j -= k, k = 1; } else { j -= k, k = 0; } } printf("%s\n", res + 1); }

Compilation message (stderr)

building4.c: In function 'main':
building4.c:13:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |   scanf("%d", &n);
      |   ^~~~~~~~~~~~~~~
building4.c:15:5: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     scanf("%d", &a[i]);
      |     ^~~~~~~~~~~~~~~~~~
building4.c:18:5: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     scanf("%d", &b[i]);
      |     ^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...