百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> 对于CCFCSP窗口-
分享文章到:

对于CCFCSP窗口-

发布时间:09/01 来源:未知 浏览: 关键词:
?XSS跨站足本袭击,通过虚伪内容和拐骗点击来绕过同源战略。这是一个很大的题目,要是袭击者成功注入代码,有相当多的会员数据会被走漏。

XSS跨站足本袭击,通过虚伪内容和拐骗点击来绕过同源战略。这是一个很大的题目,要是袭击者成功注入代码,有相当多的会员数据会被走漏。

题目描述

  在某图形操纵系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴离别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有条理的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。
  当你点击屏幕上一个点的时候,你就选中了处于被点击位置的最顶层窗口,而且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的条理次序不变。要是你点击的位置不属于任何窗口,则系统会忽略你这次点击。
  此刻我们但愿你写一个程序模拟点击窗口的历程。

输入格局

  输入的首先行有两个正整数,即 N 和 M。(1 ≤ N ≤ 10,1 ≤ M ≤ 10)
  接下来 N 行按照从最基层到最顶层的次序给出 N 个窗口的位置。 每行包括四个非负整数 x1, y1, x2, y2,表示该窗口的一对顶点坐标离别为 (x1, y1) 和 (x2, y2)。保障 x1 < x2,y1 2。
  接下来 M 行每行包括两个非负整数 x, y,表示一次鼠标点击的坐标。
  问题中波及到的所有点和矩形的顶点的 x, y 坐标离别不超过 2559 和  1439。

输出格局

  输出包含 M 行,每一行表示一次鼠标点击的效果。要是该次鼠标点击选中了一个窗口,则输出这个窗口的编号(窗口按照输入中的次序从 1 编号到 N);要是没有,则输出"IGNORED"(不含双引号)。

样例输入

3 4
0 0 4 4
1 1 5 5
2 2 6 6
1 1
0 0
4 4
0 5

样例输出

2
1
1
IGNORED

样例注明

  首先次点击的位置同时属于第 1 和第 2 个窗口,但是因为第 2 个窗口在上面,它被选中而且被置于顶层。
  第二次点击的位置只属于第 1 个窗口,因而该次点击选中了此窗口并将其置于顶层。此刻的三个窗口的条理关系与初始状态刚好相反了。
  第三次点击的位置同时属于三个窗口的范畴,但是因为此刻第 1 个窗口处于顶层,它被选中。
  最后点击的 (0, 5) 不属于任何窗口。

剖析:特殊简略的一道题,没有什么难度,只有理清了次序就好了。

#include 
#include
using namespace std;

int main()
{
	int N, M;
	cin >> N >> M;
	vectorwin;
	vector::iterator it;
	for (int i = N; i > 0; i--)
	{
		win.push_back(i);
	}
	int position[11][4];
	int cli[13][2];
	for (int i = 1; i <= N; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			cin >> position[i][j];
		}
	}
	for (int i = 0; i < M; i++)
	{
		for (int j = 0; j < 2; j++)//由于写这个的时候精神状态不是很好,原来写成j>2了。后来实在寻不到哪里错了,只好把for轮回重写了一遍。
		{
			cin >> cli[i][j];
		}
	}
	for (int i = 0; i < M; i++)
	{
		bool you = true;
		for (int j = 0; j < N; j++)
		{
			if (cli[i][0] >= position[win[j]][0] && cli[i][0] <= position[win[j]][2] && cli[i][1] >= position[win[j]][1] && cli[i][1] <= position[win[j]][3])
			{
				cout << win[j] << endl;
				you = false;
				if (j != 0)
				{
					int a = win[j];
					for (it = win.begin(); it != win.end();)
					{
						if (*it == a)
						{
							it = win.erase(it);
						//	break;
						}   //删除元素,返回值指向已删除元素的下一个位置
						else
						{
							++it;
						}    //指向下一个位置
					}
					win.insert(win.begin(), a);
				}
				break;
			}
		}
		if (you)
		{
			cout << "IGNORED" << endl;
		}
		
	}
	return 0;
}

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板