Correttore online – Esercizi intermedi
Sono date n rette nel piano, tutte distinte.
Ciascuna di esse è orizzontale o verticale.
Si deve calcolare il numero dei punti di intersezione di queste rette.Dati di input
La prima riga dell’input contiene un intero n (0 < n < 105 +1).
Ciascuna delle successive n righe descrive una retta e contiene quattro numeri x1, y1, x2, y2 che sono le coordinate di due punti diversi che individuano la retta; questi numeri, in valore assoluto, non superano 109.
Dati di output
Stampare il numero complessivo di intersezioni.
Esempi di input/output
input.txt output.txt 1
0 0 1 00 3
0 0 1 0
0 1 1 1
0 0 0 12 Autore/i: A.S. Stankevich, ACM ICPC Team St. Petersburg State University of Information technology, Mechanics and Optics.
/* www.valcon.it Correttore online - Esercizi intermedi - Rette */ #include#include using namespace std; int main() { ifstream fin ( "input.txt"); ofstream fout("output.txt"); int n; // numero di rette long npunti; // risposta; long x1, y1, x2, y2; int oriz=0, vert=0; fin >> n; for(int i=1; i <= n; i++) { fin >> x1 >> y1 >> x2 >> y2; if(x1 == x2) vert++; else if(y1 == y2) oriz++; } npunti=oriz*vert; fout << npunti << endl; return 0; }