Über das CCF CSP-Fenster
XSS-Cross-Site-Scripting-Angriff, der die Same-Origin-Richtlinie durch gefälschte Inhalte und Klickköder umgeht. Dies ist ein großes Problem, und wenn ein Angreifer erfolgreich Code einschleust, kann eine beträchtliche Menge an Benutzerdaten verloren gehen.
Problembeschreibung
In einem bestimmten Grafikbetriebssystem gibt es N Fenster, jedes Fenster ist ein rechteckiger Bereich, dessen beide Seiten parallel zur Koordinatenachse sind. . Punkte am Rand des Fensters gehören ebenfalls zum Fenster. Es gibt hierarchische Unterschiede zwischen Fenstern. In einem Bereich, in dem sich mehrere Fenster überlappen, wird nur der Inhalt des Fensters der obersten Ebene angezeigt.
Wenn Sie auf einen Punkt auf dem Bildschirm klicken, wählen Sie das Fenster der obersten Ebene an der angeklickten Position aus und dieses Fenster wird auf die oberste Ebene aller Fenster verschoben, während die hierarchische Reihenfolge der übrigen Fenster unverändert bleibt. Wenn die Stelle, auf die Sie klicken, zu keinem Fenster gehört, ignoriert das System Ihren Klick.
Jetzt möchten wir, dass Sie ein Programm schreiben, um den Vorgang des Klickens auf ein Fenster zu simulieren.Eingabeformat
Die erste Eingabezeile enthält zwei positive ganze Zahlen, nämlich N und M. (1 ≤ N ≤ 10,1 ≤ M ≤ 10)
Die nächsten N Zeilen geben die Positionen von N Fenstern in der Reihenfolge von unten nach oben an. Jede Zeile enthält vier nicht negative ganze Zahlen x1, y1, x2, y2, die ein Paar Scheitelpunktkoordinaten des Fensters (x1, y1) und (x2, y2) angeben. Es ist garantiert, dass x1 <
Jede der nächsten M Zeilen enthält zwei nicht negative ganze Zahlen x, y, die die Koordinaten eines Mausklicks darstellen.
Die x- und y-Koordinaten aller Punkte und Eckpunkte des in die Frage einbezogenen Rechtecks überschreiten nicht 2559 bzw. 1439.Ausgabeformat
Die Ausgabe umfasst M Zeilen, jede Zeile stellt das Ergebnis eines Mausklicks dar. Wird durch diesen Mausklick ein Fenster ausgewählt, wird die Nummer dieses Fensters ausgegeben (Fenster werden in der Reihenfolge der Eingabe von 1 bis N nummeriert); andernfalls wird „IGNORED“ (ohne doppelte Anführungszeichen) ausgegeben.
Beispieleingabe
3 4
0 0 4 4
1 1 5 5
2 2 6 6
1 1
0 0
4 4
0 5Beispielausgabe
2
1
1
IGNORIERTBeispielbeschreibung
Die Position Das zum ersten Mal angeklickte Fenster gehört sowohl zum 1. als auch zum 2. Fenster. Da sich das 2. Fenster jedoch oben befindet, wird es ausgewählt und nach oben verschoben.
Die Position des zweiten Klicks gehört nur zum ersten Fenster, daher wählt dieser Klick dieses Fenster aus und bringt es nach oben. Die hierarchische Beziehung zwischen den drei Fenstern ist nun genau das Gegenteil des Ausgangszustands.
Die zum dritten Mal angeklickte Position gehört zum Bereich von drei Fenstern gleichzeitig, aber da das erste Fenster nun oben liegt, ist es ausgewählt.
Der zuletzt angeklickte Wert (0, 5) gehört zu keinem Fenster.
Analyse: Eine sehr einfache Frage, nicht zu schwierig, solange die Reihenfolge geklärt ist.
#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; }
Verwandte Empfehlungen:
html5 Basic Tags (HTML5-Video-Tag, Verwendung neuer HTML5-Tags)_HTML5-Tutorial-Fähigkeiten
Das obige ist der detaillierte Inhalt vonÜber das CCF CSP-Fenster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In diesem Artikel wird erläutert, wie Audio in HTML5 mit dem & lt; audio & gt; Element, einschließlich Best Practices für die Formatauswahl (MP3, OGG Vorbis), Dateioptimierung und JavaScript -Steuerung für die Wiedergabe. Es betont die Verwendung von mehreren Audio f f

In dem Artikel werden die Meta-Tags mit Ansichtsfenster besprochen, um die Seite zu steuern, die auf mobilen Geräten skaliert und sich auf Einstellungen wie Breite und initiale Maßstäbe für optimale Reaktionsfähigkeit und Leistung konzentriert.Character Count: 159

In diesem Artikel werden interaktive HTML5 -Spiele mit JavaScript erstellt. Es umfasst das Spieldesign, die HTML -Struktur, das CSS -Styling, die JavaScript -Logik (einschließlich Ereignisbearbeitung und -animation) und die Audio -Integration. Essentielle JavaScript -Bibliotheken (Phaser, PI

In dem Artikel wird die Verwaltung der Privatsphäre und Berechtigungen des Benutzerstandorts mithilfe der Geolocation -API erörtert, wobei die Best Practices für die Anforderung von Berechtigungen, die Gewährleistung der Datensicherheit und die Einhaltung der Datenschutzgesetze hervorgehoben werden.

In diesem Artikel wird erläutert, wie HTML5 -Formulare erstellt und validiert werden. Es beschreibt die Form & gt; Element, Eingabetypen (Text, E -Mail, Nummer usw.) und Attribute (erforderlich, Muster, min, max). Die Vorteile von HTML5 -Formen gegenüber älteren Methoden, inkl.

In dem Artikel wird erläutert, wie die HTML5 -Drag & Drop -API verwendet wird, um interaktive Benutzeroberflächen zu erstellen, Schritte zu detaillieren, um Elemente draggierbar zu machen, Schlüsselereignisse zu verarbeiten und Benutzererfahrung mit benutzerdefiniertem Feedback zu verbessern. Es wird auch gemeinsame Fallstricke zu a diskutiert

In dem Artikel werden die Sichtbarkeits -API der HTML5 -Seite mit der Sichtbarkeit von Seiten ermittelt, die Benutzererfahrung verbessert und die Ressourcennutzung optimiert. Zu den wichtigsten Aspekten gehören die Pause, die Verringerung der CPU -Last und die Verwaltung von Analysen auf der Grundlage von Sichtbarkeitsänderungen.

In diesem Artikel werden die HTML5 WebSockets-API für die Kommunikation zwischen bidirektionaler Client-Server in Echtzeit erläutert. Es werden clientseitige (JavaScript) und serverseitige (Python/Flask) -implementierungen beschrieben, die Herausforderungen wie Skalierbarkeit, staatliches Management, ein
