fbpx

Problema #3327 – LaScoala – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

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 ( 2≤n≤700 ) 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=12*12 ), deci vor fi premiaţi 150144 = 6 elevi.

Exemplu

Intrare

35

Ieșire

10
25 24 23 22 21 
20 19 18 17 16 
15 14 13 12 11 
10 9 8 7 6 
5 4 3 2 1
#include <bits/stdc++.h>

using namespace std;

int n;

int main(){
    cin >> n;
    int k = sqrt(n);
    if(k * k == n)
        k--;
    cout << n - k * k << endl;
    int nr = k * k;
    for(int i = 1; i <= k; ++i, cout << endl)
        for(int j = 1; j <= k; ++j)
            cout << nr << ' ', nr--;
    return 0;
}
Comentarii

S-ar putea sa iti placa