QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#489853#9161. Naval battlenhuang685#6 0ms3828kbC++201.7kb2024-07-25 04:31:132024-07-25 04:31:14

Judging History

你现在查看的是最新测评结果

  • [2024-07-25 04:31:14]
  • 评测
  • 测评结果:6
  • 用时:0ms
  • 内存:3828kb
  • [2024-07-25 04:31:13]
  • 提交

answer

#include <bits/stdc++.h>

constexpr int64_t INF = 0x3f3f3f3f3f3f3f3f;

struct Ship {
  int64_t x = 0, y = 0;
  int64_t dx = 0, dy = 0;
};
struct Event {
  int64_t t;
  int i, j;
};

int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);

  int n;
  std::cin >> n;
  std::vector<Ship> sh(n);
  for (auto &[x, y, dx, dy] : sh) {
    char dir;
    std::cin >> x >> y >> dir;
    if (dir == 'N') {
      dy = -1;
    } else if (dir == 'S') {
      dy = 1;
    } else if (dir == 'E') {
      dx = 1;
    } else {
      dx = -1;
    }
  }
  auto inter = [&](int64_t x1, int64_t dx1, int64_t x2, int64_t dx2) -> int64_t {
    if (x1 == x2) {
      return -1;
    }
    if (dx1 == dx2) {
      return INF;
    }
    int64_t val = (x2 - x1) / (dx1 - dx2);
    return val < 0 ? INF : val;
  };
  std::vector<Event> ev;
  for (int i = 0; i < n; ++i) {
    for (int j = i + 1; j < n; ++j) {
      int64_t ix = inter(sh[i].x, sh[i].dx, sh[j].x, sh[j].dx);
      int64_t iy = inter(sh[i].y, sh[i].dy, sh[j].y, sh[j].dy);
      if ((ix == iy || ix == -1 || iy == -1) && ix != INF) {
        ev.emplace_back(std::max(ix, iy), i, j);
      }
    }
  }
  std::ranges::sort(ev, {}, &Event::t);
  std::vector<bool> in(n, true);
  std::vector<int64_t> ti(n, -1);
  for (auto [t, i, j] : ev) {
    if (in[i] && in[j]) {
      in[i] = false;
      in[j] = false;
      ti[i] = t;
      ti[j] = t;
      continue;
    }
    if (!in[i] && !in[j]) {
      continue;
    }
    if (!in[i]) {
      std::swap(i, j);
    }
    assert(!in[j]);
    if (t == ti[j]) {
      in[i] = false;
      ti[i] = t;
    }
  }
  for (int i = 0; i < n; ++i) {
    if (in[i]) {
      std::cout << i + 1 << '\n';
    }
  }
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 6
Accepted

Test #1:

score: 6
Accepted
time: 0ms
memory: 3608kb

input:

2
675333810 792019962 W
851860476 960355168 W

output:

1
2

result:

ok 

Test #2:

score: 6
Accepted
time: 0ms
memory: 3828kb

input:

2
714148610 688520844 W
359519570 789553998 S

output:

1
2

result:

ok 

Test #3:

score: 6
Accepted
time: 0ms
memory: 3612kb

input:

2
743286406 87591094 E
108453484 326740470 S

output:

1
2

result:

ok 

Test #4:

score: 6
Accepted
time: 0ms
memory: 3780kb

input:

2
629499666 659260200 W
391550936 897208930 N

output:


result:

ok 

Test #5:

score: 6
Accepted
time: 0ms
memory: 3536kb

input:

2
509095668 374922996 W
325521434 191348762 S

output:


result:

ok 

Test #6:

score: 6
Accepted
time: 0ms
memory: 3520kb

input:

2
357656592 713571312 E
456601638 614626266 S

output:


result:

ok 

Test #7:

score: 6
Accepted
time: 0ms
memory: 3812kb

input:

2
353512742 374956722 W
265604916 462864548 N

output:


result:

ok 

Test #8:

score: 6
Accepted
time: 0ms
memory: 3780kb

input:

2
253519292 302668732 E
436627396 119560628 S

output:


result:

ok 

Test #9:

score: 6
Accepted
time: 0ms
memory: 3612kb

input:

2
741954822 709863076 W
516385128 484293380 S

output:

1
2

result:

ok 

Test #10:

score: 6
Accepted
time: 0ms
memory: 3608kb

input:

2
268851874 524109226 E
503673708 758931058 N

output:

1
2

result:

ok 

Test #11:

score: 6
Accepted
time: 0ms
memory: 3608kb

input:

2
629380956 395789270 S
557401140 467769088 E

output:

1
2

result:

ok 

Test #12:

score: 6
Accepted
time: 0ms
memory: 3592kb

input:

2
606361496 587557658 N
667076156 526843000 W

output:

1
2

result:

ok 

Test #13:

score: 6
Accepted
time: 0ms
memory: 3748kb

input:

2
270428340 629167054 N
270428342 179345630 S

output:

1
2

result:

ok 

Subtask #2:

score: 0
Wrong Answer

Test #14:

score: 0
Wrong Answer
time: 0ms
memory: 3828kb

input:

100
32 46 N
8 24 W
74 86 W
2 76 N
90 70 N
34 74 N
4 68 N
42 26 N
66 94 N
28 40 W
96 12 W
82 78 W
54 24 N
36 42 W
92 68 W
0 26 N
14 54 N
94 66 N
26 52 N
66 12 W
72 6 W
64 96 W
6 20 N
4 22 W
26 42 N
40 28 W
70 76 N
18 60 N
62 16 N
30 48 N
36 36 W
42 36 W
52 94 N
62 98 N
0 78 N
70 2 W
28 50 N
80 80 W
8...

output:

26
35
69

result:

FAIL Unexpected end of file - token expected (/var/uoj_data/9161/14.ans)

Subtask #3:

score: 0
Skipped

Dependency #2:

0%

Subtask #4:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Time Limit Exceeded

Test #58:

score: 0
Time Limit Exceeded

input:

200000
526715640 430855204 E
731546662 226024182 S
254814720 702756124 E
227354364 730216480 S
764250602 193320242 S
150102088 807468756 E
204858572 752712272 S
635512190 322058654 E
403910248 553660596 S
257917918 4587926 S
949444340 8126504 S
907805098 49765746 S
553836306 403734538 S
40977864 617...

output:


result:


Subtask #7:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%