TAKMIČENJA IZ PROGRAMIRANJA


Sva pitanja, predloge ili primedbe u vezi sa takmičenjima iz programiranja možete slati na e-mail:

tak.prog@gmail.com

U toku perioda za žalbe, sve žalbe možete slati na ovaj isti e-mail.

willrogers.cpp    643 b      izvorni kod rešenja
willrogers.tests.7z    40,194 b      test primeri
willrogers.solution.pdf    94,405 b      rešenje problema

zadatak: Will Rogers

Will Rogers fenomen se dobija kada se element iz jednog skupa prebaci u drugi, pri čemu se srednje vrednosti oba skupa povećaju. Baziran je na citatu Willa Rogera:

Kada su Okie (domorovci) napustile Oklahomu i preselili se u Kaliforniju, podigli su prosečan nivo inteligencije u obe države.

Data su dva skupa prirodnih brojeva a i b veličine n odnosno m. Naći broj elemenata skupa a koji prebacivanjem u skup b povećavaju prosečnе vrednosti oba skupa.

Ulaz.

(Ulazni podaci se učitavaju sa standardnog ulaza.) U prvom redu standarnog ulaza nalaze se dva prirodna broja n i m (2 ≤ n, m ≤ 5000). Naredna dva reda sadrže po n i m prirodnih brojeva koji predstavljaju elemente nizova a i b, redom. Elementi nizova su iz segmenta [1, 1000].

Izlaz.

(Izlazne podatke ispisati na standardan izlaz.) U prvom i jedinom redu standardnog izlaza ispisati traženi broj.

Primer 1.

standardni ulaz      standardni izlaz
3 3
6 5 4
1 2 3
        
1

Objašnjenje.

Jedini element koji zadovoljava uslove je broj: 4.

fajl: willrogers.cpp
#include<stdio.h>
#define MAX_N 5005

int n, m, a [MAX_N], b [MAX_N], sol;
double avgA, avgB;

  void input()
  {
    scanf ("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
      scanf ("%d", &a [i]);
    for (int i = 0; i < m; i++)
      scanf ("%d", &b [i]);
  }

  void solve()
  {
    avgA = 0;
    for (int i = 0; i < n; i++)
      avgA += a [i];
    avgA = avgA / n;

    avgB = 0;
    for (int i = 0; i < m; i++)
      avgB += b [i];
    avgB = avgB / m;

    sol = 0;
    for (int i = 0; i < n; i++)
      if ((a [i] < avgA) && (avgB < a [i]))
        sol++;
  }

  int main()
  {
    input();
    solve();
    printf ("%d\n", sol);

    return 0;
  }