1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <bits/stdc++.h>
using namespace  std;
int main(){
    int a,b;
    cin >> a >>b;
    int poleg= a*b;
    int n,wynik=0;
    cin >>n;
    int tab[n],polei;
    for (int i = 0; i < n; ++i) {
        cin >> tab[i];
    }
    sort(tab,tab+n,greater<int>());
        for (int j = 0; j < n; ++j) {
            polei = tab[j]*tab[j];
            if ((poleg-polei)>0){
                j--;
                wynik++;
                poleg-=polei;
            } else {
                polei= tab[j+1]*tab[j+1];
                if ((poleg-polei)>0) {
                    wynik++;
                    poleg -= polei;
                } else{
                    wynik=-1;
                    break;
                }
            }
            
            
        }
       cout << wynik;
    return 0;
}