QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#22702#2365. Flight CollisionLFCode#WA 49ms8860kbC++141.3kb2022-03-10 15:32:402022-04-30 01:33:17

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-04-30 01:33:17]
  • 评测
  • 测评结果:WA
  • 用时:49ms
  • 内存:8860kb
  • [2022-03-10 15:32:40]
  • 提交

answer

//什么时候我才能有杜爷一半强啊/kk
#include<cstdio>
#include<queue>
#include<set>
using namespace std;
const int N=100086;
int n,a[N],v[N];
struct infor{
	double t;int x,y;infor(){}
	infor(double tme,int a,int b){t=tme;x=a;y=b;}
	bool operator <(const infor x)const{return t>x.t;}
};
priority_queue<infor>q;
set<int>s;
int read(){
	char ch=getchar();int nn=0,ssss=1;
	while(ch<'0'||ch>'9'){if(ch=='-')ssss*=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){nn=nn*10+(ch-'0');ch=getchar();}
	return nn*ssss;
}
bool push(int x,int y){
	if(x<y)x^=y^=x^=y;if(v[x]>=v[y])return false;
	double T=1.0*(a[x]-a[y])/(1.0*(v[y]-v[x]));
	//printf("%d %d %.5lf\n",x,y,T);
	q.push(infor(T,x,y));return true;
}
int main(){
	n=read();
	for(int i=1;i<=n;i++){
		a[i]=read();v[i]=read();
		if(i>1)push(i,i-1);
		s.insert(i);
	}
	while(q.size()&&s.size()){
		infor np=q.top();q.pop();
		if(!(s.count(np.x)&&s.count(np.y)))continue;
		s.erase(np.x);s.erase(np.y);
		if(!s.size())break;
		set<int>::iterator x=s.upper_bound(np.x);
		if(x==s.end())continue;
		set<int>::iterator y=s.lower_bound(np.y);
		if(y==s.begin())continue;y--;
		push(*x,*y);
	}
	printf("%d\n",s.size());
	for(set<int>::iterator it=s.begin();it!=s.end();it++)
		printf("%d ",*it);
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3124kb

input:

1
-4 13

output:

1
1 

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 3036kb

input:

5
1 1000000000
2 1000000000
3 -1000000000
4 -1000000000
5 -1000000000

output:

1
5 

result:

ok 2 lines

Test #3:

score: 0
Accepted
time: 3ms
memory: 3168kb

input:

3
-1000000000 1
999999999 0
1000000000 0

output:

1
3 

result:

ok 2 lines

Test #4:

score: 0
Accepted
time: 2ms
memory: 3128kb

input:

2
5 4
10 5

output:

2
1 2 

result:

ok 2 lines

Test #5:

score: 0
Accepted
time: 0ms
memory: 3164kb

input:

9
10 10
20 7
30 5
40 0
42 0
50 -1
60 -2
70 -10
80 -12

output:

1
1 

result:

ok 2 lines

Test #6:

score: 0
Accepted
time: 0ms
memory: 3200kb

input:

5
10 0
20 0
30 1
40 0
50 0

output:

3
1 2 5 

result:

ok 2 lines

Test #7:

score: 0
Accepted
time: 39ms
memory: 8568kb

input:

98765
0 -48539
1 -48539
2 -48539
3 -48539
4 -48539
5 -48539
6 -48539
7 -48539
8 -48539
9 -48539
10 -48539
11 -48539
12 -48539
13 -48539
14 -48539
15 -48539
16 -48539
17 -48539
18 -48539
19 -48539
20 -48539
21 -48539
22 -48539
23 -48539
24 -48539
25 -48539
26 -48539
27 -48539
28 -48539
29 -48539
30 -...

output:

98765
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10...

result:

ok 2 lines

Test #8:

score: -100
Wrong Answer
time: 49ms
memory: 8860kb

input:

99999
-999999396 999999395
-999971669 999999396
-999971668 -999999396
-999961260 999999396
-999961259 -999999396
-999907239 999999396
-999907238 -999999396
-999754561 999999396
-999754560 -999999396
-999662011 999999396
-999662010 -999999396
-999651505 999999396
-999651504 -999999396
-999619141 9999...

output:

1
1 

result:

wrong answer 2nd lines differ - expected: '99999', found: '1 '