QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#521258#9161. Naval battleDan4Life#6 1ms5724kbC++231.8kb2024-08-16 02:02:452024-08-16 02:02:45

Judging History

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

  • [2024-08-16 02:02:45]
  • 评测
  • 测评结果:6
  • 用时:1ms
  • 内存:5724kb
  • [2024-08-16 02:02:45]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) begin(a), end(a)
using ll = long long;
using vi = vector<int>;
using ar2 = array<int,2>;
using ar3 = array<int,3>;
const int INF = (int)2e9;
const int mxN = (int)2e5+10;

struct Ship{
	int x, y, i;
	char d;
};

int n;
Ship a[mxN];
int collided[mxN];
priority_queue<ar3,vector<ar3>,greater<ar3>> pq;

bool sameAxis(char a, char b){
	if(a=='N' and b=='S') return 1;
	if(a=='S' and b=='N') return 1;
	if(a=='E' and b=='W') return 1;
	if(a=='W' and b=='E') return 1;
	return 0;
}

int main(){
	cin >> n;
	fill(collided,collided+n,INF);
	for(int i = 0; i < n; i++){
		cin >> a[i].x >> a[i].y >> a[i].d;
		a[i].i = i;
	}
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			if(i==j) continue;
			if(a[i].d==a[j].d) continue;
			int tim = INF;
			if(sameAxis(a[i].d,a[j].d)){
				if(a[i].d=='S'){
					if(a[i].x==a[j].x and a[i].y<a[j].y)
						tim = abs(a[j].y-a[i].y)/2;
				}
				else if(a[i].d=='E'){
					if(a[i].y==a[j].y and a[i].x<a[j].x)
						tim = abs(a[j].x-a[i].x)/2;
				}
			}
			else{
				if(a[i].d=='N' or a[i].d=='S'){
					bool leftDiag = 0;
					if(a[i].d=='S' and a[j].d=='E') leftDiag = 1;
					if(a[i].d=='N' and a[j].d=='W') leftDiag = 1;
					if(leftDiag){
						if(a[i].x+a[i].y==a[j].x+a[j].y)
							tim = abs(a[i].x-a[j].x);
					}
					else{
						if(a[i].x-a[i].y==a[j].x-a[j].y)
							tim = abs(a[i].x-a[j].x);
					}
				}
			}
			if(tim!=INF) pq.push({tim,i,j});
		}
	}
	while(sz(pq)){
		auto [T,i,j] = pq.top(); pq.pop();
		if(collided[i]<T or collided[j]<T) continue;
		collided[i]=collided[j]=T;
	}
	for(int i = 0; i < n; i++)
		if(collided[i]==INF) cout << i+1 << "\n";
}

详细

Subtask #1:

score: 6
Accepted

Test #1:

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

input:

2
675333810 792019962 W
851860476 960355168 W

output:

1
2

result:

ok 

Test #2:

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

input:

2
714148610 688520844 W
359519570 789553998 S

output:

1
2

result:

ok 

Test #3:

score: 6
Accepted
time: 1ms
memory: 3596kb

input:

2
743286406 87591094 E
108453484 326740470 S

output:

1
2

result:

ok 

Test #4:

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

input:

2
629499666 659260200 W
391550936 897208930 N

output:


result:

ok 

Test #5:

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

input:

2
509095668 374922996 W
325521434 191348762 S

output:


result:

ok 

Test #6:

score: 6
Accepted
time: 1ms
memory: 5700kb

input:

2
357656592 713571312 E
456601638 614626266 S

output:


result:

ok 

Test #7:

score: 6
Accepted
time: 1ms
memory: 5628kb

input:

2
353512742 374956722 W
265604916 462864548 N

output:


result:

ok 

Test #8:

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

input:

2
253519292 302668732 E
436627396 119560628 S

output:


result:

ok 

Test #9:

score: 6
Accepted
time: 1ms
memory: 5724kb

input:

2
741954822 709863076 W
516385128 484293380 S

output:

1
2

result:

ok 

Test #10:

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

input:

2
268851874 524109226 E
503673708 758931058 N

output:

1
2

result:

ok 

Test #11:

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

input:

2
629380956 395789270 S
557401140 467769088 E

output:

1
2

result:

ok 

Test #12:

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

input:

2
606361496 587557658 N
667076156 526843000 W

output:

1
2

result:

ok 

Test #13:

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

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: 1ms
memory: 5720kb

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:

45
78
86

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%