Rezolvare completă PbInfo #1490 Musca

Ferma lui Algo arată ca o gospodărie mare, în care îşi găsesc locul multe animale şi sunt cultivate pe suprafeţe întinse legume, cereale şi pomi fructiferi. În acest an, pomii a fost atacaţi de o musculiţă care le distruge fructele. Algo a căutat o soluţie pentru îndepărtarea musculiţelor, dar nu a găsit una eficientă. A observat însă că musculiţele sunt sensibile la fum. Aşa că a construit un dispozitiv alcătuit din două ţevi, cu care poate să tragă în acelaşi timp, pe aceeaşi direcţie, dar în sens invers, două baloane speciale umplute cu fum. La fiecare acţionare a dispozitivului sunt lansate cu aceeaşi viteză cele două baloane, care se sparg şi împrăştie fumul la contactul cu copacul.

Cerința

Deoarece baloanele speciale şi tehnologia lui de a le umple cu fum sunt costisitoare, Algo îşi propune să alunge dăunătorii folosind cât mai eficient resursele. Astfel el vrea să folosească cât mai puţine baloane şi caută posibilitatea de a amplasa dispozitivul într-un punct din fermă care să îi permită trageri eficiente, adică să poată trage în toți pomii din fermă și la fiecare tragere să atingă doi pomi în acelaşi timp.

Determinaţi dacă este posibil să găsească acest punct.

Date de intrare

Fișierul de intrare musca.in conține:

  • pe prima linie numărul n de pomi de la fermă;
  • pe următoarele n linii coordonatele pomilor în forma abscisă ordonată, separate prin spaţiu.

Date de ieșire

Fișierul de ieșire musca.out va conține pe prima linie numărul 1, dacă există soluţie sau 0 dacă nu există soluţie. În cazul în care există soluţie se vor scrie în continuare, pe aceeaşi linie, separate prin spaţiu, coordonatele punctului determinat, în ordinea abscisă ordonată, ca numere reale cu 3 zecimale exacte.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • pomii sunt consideraţi puncte în plan, fără să ţinem cont de grosimea şi înălţimea lor;
  • coordonatele punctelor sunt numere întregi din intervalul [-10000, 10000];
  • dispozitivul nu poate fi amplasat într-un copac;
  • balonul explodează doar la contactul cu pomul.

Exemplu

musca.in

4
10 0
10 10
0 10
0 0

musca.out

1 5.000 5.000

Explicație

Există un punct în care poate fi amplasat dispozitivul. Acesta se află la coordonatele (5,5).

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Musca:

#include <fstream>
#include <iomanip>
#include<iostream>

using namespace std;

ifstream fin("musca.in");
ofstream fout("musca.out");

int main()
{
    int n, x[10000], y[100000],i,j,a, ok;
    float mx,my;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>x[i]>>y[i];
    ok=1;
    if(n%2==1)
        ok=0;
    if (ok)
    {
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++)
            if(x[i]>x[j])
            {
                a=x[i]; x[i]=x[j]; x[j]=a;
                a=y[i]; y[i]=y[j]; y[j]=a;
            }
            else
                if(x[i]==x[j])
                    if(y[i]>y[j])
                    {
                        a=y[i]; y[i]=y[j]; y[j]=a;
                    }
    mx=(x[1]+x[n])/2.0;
    my=(y[1]+y[n])/2.0;
    cout<<mx<<<<my<<endl;
    for(i=2;i<=n/2;i++)
    {
        if((x[i]+x[n+1-i])/2.0!=mx ||(y[i]+y[n+1-i])/2.0!=my)
            ok=0;
        cout<<(x[i]+x[n+1-i])/2.0<<<<(y[i]+y[n+1-i])/2.0<<endl;
    }
    }

    if(ok)
    {
        fout<<1<<;
        int m=(int)(mx*1000);
        mx=m/1000.0;
        fout<<fixed;
        fout<<setprecision(3)<<mx<<" "<<my;
    }
    else
        fout<<0;
    fin.close();
    fout.close();
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1490 Musca

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1490 Musca de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!