Directorul unei şcoli doreşte să premieze la sfârşitul anului şcolar pe cei mai buni elevi la învăţătură. Pentru acest lucru el are de rezolvat două probleme:
1. Să determine câţi elevi vor fi premiaţi dintre cei n elevi ai şcolii. După discuţii aprinse cu ceilalţi profesori se hotărăşte în Consiliul Profesoral ca numărul premianţilor să fie n - k, unde k este cel mai mare număr pătrat perfect mai mic strict decât n. De exemplu, pentru n=150, k este 144 (pentru că 144 = 122), deci vor fi premiaţi 150 - 144=6 elevi.
2. Pentru a fi cât mai multă linişte la premiere, în Consiliul Profesoral se ia decizia ca elevii care nu vor fi premiaţi să fie aşezaţi pe terenul de sport pe rânduri de câte p elevi (unde p2 = k). În acest scop, directorul a numerotat elevii nepremiaţi de la 1 la k şi a hotărât ca elevii să fie aşezaţi în ordinea descrescătoare a numerelor asociate.
boiustef:
codul postat a mers pentru toate testele lor, dar e o neclaritate... pe varena ia 0 puncte si nu inţeleg de ce... poate observi tu...
Răspunsuri la întrebare
Răspuns de
3
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("lascoala.in");
ofstream g("lascoala.out");
int n, k, i, j, p, prem;
int main()
{
f >> n;
k=n-1;
while (sqrt(k)!=sqrt(k)) --k;
prem=n-k;
g << prem << "\n";
n=n-prem;
p=sqrt(k);
for (i=1; i<=p; ++i)
{
for (j=1; j<=p; ++j)
{g << n << " "; --n;}
g << "\n";
}
}
Alte întrebări interesante
Geografie,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă