답안 #1114467

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1114467 2024-11-18T23:52:00 Z dynam1c Sprinklers (CEOI24_sprinklers) C++17
20 / 100
95 ms 3656 KB
#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m;
  vector<int> s(n), f(m);
  for (int& e : s)
    cin >> e;
  for (int& e : f)
    cin >> e;

  vector<char> d(n);
  auto check = [&](int k) {
    d.assign(n, 0);
    vector<int> x(n+1);
    x[0] = -1;
    int j = 0;
    int li = -1, lj;
    for (int i = 0; i < n; i++) {
      if (s[i] <= x[i])
        x[i+1] = s[i]+k, d[i] = 'R';
      else if (f[j] < s[i]) {
        if (s[i]-f[j] > k)
          return false;
        x[i+1] = s[i], d[i] = 'L';
        if (li >= 0 && s[i]-k <= f[lj]) {
          x[i+1] = s[li]+k;
          d[li] = 'R';
        }
        li = i, lj = j;
      } else
        x[i+1] = s[i]+k, d[i] = 'R';
      while (j < m && f[j] <= x[i+1])
        j++;
    }
    return j == m;
  };

  if (!check(1e9)) {
    cout << -1 << endl;
    return 0;
  }

  int l = -1, r = 1e9;
  while (r-l > 1) {
    int m = (l+r)/2;
    if (check(m))
      r = m;
    else
      l = m;
  }

  check(r);
  cout << r << endl;
  for (char c : d)
    cout << c;
  cout << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Correct
2 Correct 1 ms 336 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Correct
2 Correct 23 ms 592 KB Correct
3 Correct 1 ms 336 KB Correct
4 Correct 26 ms 1664 KB Correct
5 Correct 26 ms 1740 KB Correct
6 Correct 1 ms 336 KB Correct
7 Correct 1 ms 336 KB Correct
8 Correct 6 ms 592 KB Correct
9 Correct 1 ms 336 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Correct
2 Correct 31 ms 592 KB Correct
3 Correct 7 ms 336 KB Correct
4 Correct 67 ms 1596 KB Correct
5 Correct 73 ms 1588 KB Correct
6 Correct 1 ms 336 KB Correct
7 Correct 1 ms 336 KB Correct
8 Correct 61 ms 1592 KB Correct
9 Correct 58 ms 3620 KB Correct
10 Correct 91 ms 3656 KB Correct
11 Incorrect 38 ms 2248 KB User solution is worse than jury's solution
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Correct
2 Correct 1 ms 336 KB Correct
3 Correct 2 ms 336 KB Correct
4 Correct 1 ms 336 KB Correct
5 Correct 2 ms 336 KB Correct
6 Correct 1 ms 336 KB Correct
7 Correct 1 ms 336 KB Correct
8 Correct 1 ms 336 KB Correct
9 Correct 1 ms 336 KB Correct
10 Correct 1 ms 336 KB Correct
11 Correct 1 ms 336 KB Correct
12 Correct 1 ms 336 KB Correct
13 Correct 1 ms 336 KB Correct
14 Correct 1 ms 504 KB Correct
15 Correct 1 ms 336 KB Correct
16 Correct 1 ms 336 KB Correct
17 Correct 1 ms 336 KB Correct
18 Correct 1 ms 336 KB Correct
19 Correct 1 ms 336 KB Correct
20 Correct 2 ms 336 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Correct
2 Correct 32 ms 848 KB Correct
3 Correct 86 ms 1596 KB Correct
4 Correct 87 ms 1584 KB Correct
5 Correct 92 ms 1604 KB Correct
6 Incorrect 95 ms 1588 KB User solution is incorrect
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Correct
2 Correct 1 ms 336 KB Correct
3 Correct 23 ms 592 KB Correct
4 Correct 1 ms 336 KB Correct
5 Correct 26 ms 1664 KB Correct
6 Correct 26 ms 1740 KB Correct
7 Correct 1 ms 336 KB Correct
8 Correct 1 ms 336 KB Correct
9 Correct 6 ms 592 KB Correct
10 Correct 1 ms 336 KB Correct
11 Correct 31 ms 592 KB Correct
12 Correct 7 ms 336 KB Correct
13 Correct 67 ms 1596 KB Correct
14 Correct 73 ms 1588 KB Correct
15 Correct 1 ms 336 KB Correct
16 Correct 1 ms 336 KB Correct
17 Correct 61 ms 1592 KB Correct
18 Correct 58 ms 3620 KB Correct
19 Correct 91 ms 3656 KB Correct
20 Incorrect 38 ms 2248 KB User solution is worse than jury's solution
21 Halted 0 ms 0 KB -