CCF CSP ウィンドウについて

Sep 14, 2018 pm 02:02 PM

XSS クロスサイト スクリプティング攻撃。偽のコンテンツとクリックベイトを通じて同一生成元ポリシーをバイパスします。これは大きな問題であり、攻撃者がコードの挿入に成功すると、かなりの量のユーザー データが漏洩する可能性があります。

問題の説明

特定のグラフィックス オペレーティング システムには N 個のウィンドウがあり、各ウィンドウは座標軸に平行な両側を持つ長方形の領域です。 。ウィンドウの境界上の点もウィンドウに属します。複数のウィンドウが重なっている領域では、ウィンドウ間に階層の違いがあり、最上位のウィンドウのコンテンツのみが表示されます。
画面上の点をクリックすると、クリックした位置の最上位ウィンドウが選択され、このウィンドウはすべてのウィンドウの最上位に移動されますが、残りのウィンドウの階層順序は変更されません。クリックした場所がどのウィンドウにも属していない場合、システムはクリックを無視します。
ここで、ウィンドウをクリックするプロセスをシミュレートするプログラムを作成してもらいます。

入力形式

入力の最初の行には、N と M という 2 つの正の整数が含まれています。 (1 ≤ N ≤ 10,1 ≤ M ≤ 10)
次の N 行は、N 個のウィンドウの位置を下から上に順番に示します。各行には 4 つの非負の整数 x1、y1、x2、y2 が含まれており、ウィンドウの頂点座標のペア (x1, y1) と (x2, y2) を示します。 x1 次の M 行のそれぞれには、マウス クリックの座標を表す 2 つの非負の整数 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番目のウィンドウが一番上にあるので選択して一番上に持ってきます。
2回目にクリックした位置は最初のウィンドウにのみ属するため、このクリックでこのウィンドウが選択され、最上部に表示されます。 3 つのウィンドウ間の階層関係は、初期状態とはまったく逆になります。
3 回目にクリックした位置は同時に 3 つのウィンドウの範囲に属しますが、最初のウィンドウが最上位にあるため、選択されます。
最後にクリックされた (0, 5) はどのウィンドウにも属しません。

分析: 非常に単純な質問ですが、順序さえ分かれば難しいことはありません。

#include <iostream>
#include<vector>
using namespace std;

int main()
{
	int N, M;
	cin >> N >> M;
	vector<int>win;
	vector<int>::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;
}
ログイン後にコピー

関連する推奨事項:

HTML5 セキュリティの概要コンテンツ セキュリティ ポリシー (CSP) の概要_html5 チュートリアル スキル

html5 基本タグ (html5 ビデオタグ html5 新しいタグの使用法)_html5 チュートリアル スキル

以上がCCF CSP ウィンドウについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

H5は何を参照していますか?コンテキストの探索 H5は何を参照していますか?コンテキストの探索 Apr 12, 2025 am 12:03 AM

H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

H5:Web標準とテクノロジーの進化 H5:Web標準とテクノロジーの進化 Apr 15, 2025 am 12:12 AM

Web標準とテクノロジーは、これまでにHTML4、CSS2、および単純なJavaScriptから進化し、重要な開発を受けてきました。 1)HTML5は、CanvasやWebstorageなどのAPIを導入し、Webアプリケーションの複雑さと互換性を高めます。 2)CSS3はアニメーション関数とトランジション関数を追加して、ページをより効果的にします。 3)JavaScriptは、矢印関数やクラスなど、node.jsおよびES6の最新の構文を通じて開発効率とコードの読みやすさを向上させます。これらの変更により、パフォーマンスの最適化とWebアプリケーションのベストプラクティスの開発が促進されました。

H5コード:Web開発者向けのベストプラクティス H5コード:Web開発者向けのベストプラクティス Apr 16, 2025 am 12:14 AM

H5コードのベストプラクティスには以下が含まれます。1。正しいDoctype宣言と文字エンコーディングを使用します。 2。セマンティックタグを使用します。 3。HTTPリクエストを削減します。 4.非同期負荷を使用します。 5。画像を最適化します。これらのプラクティスは、Webページの効率、保守性、ユーザーエクスペリエンスを向上させることができます。

H5はHTML5の速記ですか?詳細の調査 H5はHTML5の速記ですか?詳細の調査 Apr 14, 2025 am 12:05 AM

H5はHTML5の略語だけでなく、より広い最新のWeb開発テクノロジーエコシステムを表しています。1。H5にはHTML5、CSS3、JavaScript、および関連するAPIおよびテクノロジーが含まれます。 2.より豊かでインタラクティブでスムーズなユーザーエクスペリエンスを提供し、複数のデバイスでシームレスに実行できます。 3. H5テクノロジースタックを使用して、レスポンシブWebページと複雑なインタラクティブ機能を作成できます。

H5およびHTML5:Web開発で一般的に使用される用語 H5およびHTML5:Web開発で一般的に使用される用語 Apr 13, 2025 am 12:01 AM

H5とHTML5は、同じこと、つまりHTML5を参照します。 HTML5はHTMLの5番目のバージョンであり、セマンティックタグ、マルチメディアサポート、キャンバスとグラフィックス、オフラインストレージ、ローカルストレージなどの新しい機能をもたらし、Webページの表現力と互換性を向上させます。

H5コードの理解:HTML5の基礎 H5コードの理解:HTML5の基礎 Apr 17, 2025 am 12:08 AM

HTML5は、最新のWebページを構築するための重要なテクノロジーであり、多くの新しい要素と機能を提供します。 1。HTML5は、Webページの構造とSEOを強化するなどのセマンティック要素を導入します。 2。プラグインなしのマルチメディア要素と埋め込みメディアをサポートします。 3.フォームは、新しい入力タイプと検証プロパティを強化し、検証プロセスを簡素化します。 4.オフラインおよびローカルストレージ機能を提供して、Webページのパフォーマンスとユーザーエクスペリエンスを向上させます。

H5コードの分解:タグ、要素、属性 H5コードの分解:タグ、要素、属性 Apr 18, 2025 am 12:06 AM

HTML5コードは、タグ、要素、属性で構成されています。1。タグはコンテンツタイプを定義し、などの角度ブラケットに囲まれています。 2。要素は、startタグ、内容、および内容などのエンドタグで構成されています。 3。属性は、開始タグのキー値のペアを定義し、ような関数を強化します。これらは、Web構造を構築するための基本ユニットです。

H5:ウェブ上のユーザーエクスペリエンスをどのように強化するか H5:ウェブ上のユーザーエクスペリエンスをどのように強化するか Apr 19, 2025 am 12:08 AM

H5は、マルチメディアサポート、オフラインストレージ、パフォーマンスの最適化により、Webユーザーエクスペリエンスを向上させます。 1)マルチメディアサポート:H5と要素は、開発を簡素化し、ユーザーエクスペリエンスを向上させます。 2)オフラインストレージ:WebStorageとIndexEdDBは、エクスペリエンスを改善するためにオフラインで使用できるようにします。 3)パフォーマンスの最適化:ウェブワーカーと要素は、パフォーマンスを最適化して帯域幅の消費を削減します。

See all articles