10分请问哪里错了???
查看原帖
10分请问哪里错了???
1014750
CCA_zhujunwei楼主2023/10/19 18:21

呕~~ 真是醉了,调了仨小时了,还是十分

#include<bits/stdc++.h>
using namespace std;
struct node1{
	long long arrive1;
	long long leave1;
	bool flag1;
}a1[50000 + 10];
struct node2{
	long long arrive2;
	long long leave2;
	bool flag2;
}a2[50000 + 10];
bool Cmp(long long a, long long b){
	return a < b;
}
long long m1, m2, n, cc, sum;
int main(){
	cin >>n >>m1 >>m2;
	for(int i = 1;i <= m1;i++){
		cin >>a1[i].arrive1 >>a1[i].leave1;
	}
	for(int i = 1;i <= m2;i++){
		cin >>a2[i].arrive2 >>a2[i].leave2;
	}
	for(int i = 1;i <= m1;i++){
		for(int j = i;j <= m1;j++){
			if(a1[i].arrive1 > a1[j].arrive1){
				swap(a1[i], a1[j]);
			}
		}
	}
	for(int i = 1;i <= m1;i ++){
		a1[i].flag1 = true; 
	}
	for(int i = 1;i <= m1;i ++){
		for(int j = 1;j <= m1;j ++){
			if(a1[i].leave1 < a1[j].arrive1  ){	
				if(a1[j].flag1 = true){
					a1[j].flag1 = false;
				}
			}
		}
	}
	for(int i = 1;i <= m1;i++){
		if(a1[i].flag1 = true){
			sum++;
		}
	}
	
	for(int i = 1;i <= m2;i++){
		for(int j = i;j <= m2;j++){
			if(a2[i].arrive2 > a2[j].arrive2){
				swap(a2[i], a2[j]);
			}
		}
	}
	for(int i = 1;i <= m2;i ++){
		a1[i].flag1 = true; 
	}
	for(int i = 1;i <= m2;i ++){
		for(int j = 1;j <= m2;j ++){
			if(a2[i].leave2 < a2[j].arrive2){
				if(a2[j].flag2 = true){
					a2[j].flag2 = false;
				}
			}
		}
	}
	for(int i = 1;i <= m2;i++){
		if(a2[i].flag2 = true){
			sum++;
		}
	}
	cout<<sum;
	return 0;
}
TLE RE WA AC 都有,不知道咋整的
2023/10/19 18:21
加载中...