蒟蒻求助,第三个点WA了
查看原帖
蒟蒻求助,第三个点WA了
669924
guozhetao楼主2022/7/24 15:02

在CF官网提交很多次了,都过不去。

#include<bits/stdc++.h>
using namespace std;
int main() {
	int a;
	long long x[1005],y[1005],x1[1005],y1[1005];
	scanf("%d",&a);
	for(int i = 1;i <= a;i++) {
		scanf("%11d%11d%11d%11d",&x[i],&y[i],&x1[i],&y1[i]);
	}
	int f = a;
	while(f - 1) {
		bool k = true;
		for(int i = 2;i <= a;i++) {
			for(int j = 1;j < i;j++) {
				if(x[i] == 0 and y[i] == 0 and x1[i] == 0 and y1[i] == 0) {
					break;//退出整个j的循环 
				}
				if(x[j] == 0 and y[j] == 0 and x1[j] == 0 and y1[j] == 0) {
					continue;
				}
				if(x[i] == x[j] and y[i] == y1[j] and x1[i] == x1[j]) {//判断两个是否属于同一列且相邻 
					if(y[i] > y[j]) {
						y[i] = y[j];
					}
					if(y1[i] < y1[j]) {
						y1[i] = y1[j];
					}
					x[j] = 0 ;
					y[j] = 0;
					x1[j] = 0;
					y1[j] = 0;
					f--;
					k = false;
					continue;
				}
				if(y[i] == y[j] and x[i] == x1[j] and y1[i] == y1[j]) {//判断两个是否属于同一行且相邻 
					if(x[i] > x[j]) {
						x[i] = x[j];
					}
					if(x1[i] < x1[j]) {
						x1[i] = x1[j];
					}
					x[j] = 0 ;
					y[j] = 0;
					x1[j] = 0;
					y1[j] = 0;
					f--;
					k = false;
				}
			}
		}
		if(k) {//如果没发生合并,退出循环 
			printf("NO\n");
			return 0;
		}
	}
	printf("YES\n");//否则输出yes 
}

2022/7/24 15:02
加载中...