飞行的猪哼哼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Problem Description

给定2 个集合S和T,试设计一个判定S和T是否相等的蒙特卡罗算法。
设计一个拉斯维加斯算法,对于给定的集合S和T,判定其是否相等。

Input

输入数据的第一行有1 个正整数n(n≤10000),表示集合的大小。接下来的2行,每行有n个正整数,分别表示集合S和T中的元素。

Output

将计算结论输出。集合S和T相等则输出YES,否则输出NO。

Sample Input

3
2 3 7
7 2 3

Sample Output

YES

import java.util.Scanner;
public class Main {
	public static void main(String[] args)
	{
		Scanner reader=new Scanner(System.in);
		int n=reader.nextInt();
		int A[]=new int [n+1];
		int B[]=new int [n+1];
		for(int i=0;i<n;i++)
		{
			A[i]=reader.nextInt();
		}
		for(int i=0;i<n;i++)
		{
			B[i]=reader.nextInt();
		}
		int flag1=0;int flag2=0;
		for(int i=0;i<n;i++)
		{
			int j;
			for(j=0;j<n;j++)
			{
				if(A[i]==B[j])
				{
					break;
				}
			}
			if(j==n)
			{
				flag1=1;
				break;
			}
		}
		if(flag1==1)
		{
			for(int i=0;i<n;i++)
			{
				int j;
				for(j=0;j<n;j++)
				{
					if(A[j]==B[i])
					{
						break;
					}
				}
				if(j==n)
				{
					flag1=1;
					break;
				}
			}
		}
		if(flag1==0&&flag2==0)
		{
			System.out.println("YES");
		}
		else
		{
			System.out.println("NO");
		}
		reader.close();
	}
}
posted on 2018-11-25 16:04  飞行的猪哼哼  阅读(113)  评论(0)    收藏  举报