#include<iostream>
using namespace std;
int main(){
long long wymiarx;
int wymiary;
int n;
cin >> wymiarx;
cin >> wymiary;
cin >> n;
int kwadraty[n];
for(int i = 0; i < n; i++){
cin >> kwadraty[i];
}
int d;
int miescisie = n - 1;
long long wynik = 0;
int wx;
if(wymiarx % kwadraty[0] or wymiary % kwadraty[0]){
cout << -1;
}
else{
long long w = 0;
int rozmiar;
while(wymiarx and wymiary){
if(wymiarx > wymiary){
d = wymiarx;
wymiarx = wymiary;
wymiary = d;
}
for(int i = miescisie; i >= 0; i--){
if(wymiarx >= kwadraty[i]){
miescisie = i;
rozmiar = kwadraty[miescisie];
break;
}
}
wx = wymiarx;
w = 0;
for(int i = miescisie; i >= 0; i--){
w += (wx / kwadraty[i]) * (rozmiar / kwadraty[i]);
wx -= kwadraty[i] * (wx / kwadraty[i]);
}
wynik += w * (wymiary / rozmiar);
wymiary -= (wymiary/ rozmiar) * rozmiar;
}
cout << wynik;
}
}
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include<iostream> using namespace std; int main(){ long long wymiarx; int wymiary; int n; cin >> wymiarx; cin >> wymiary; cin >> n; int kwadraty[n]; for(int i = 0; i < n; i++){ cin >> kwadraty[i]; } int d; int miescisie = n - 1; long long wynik = 0; int wx; if(wymiarx % kwadraty[0] or wymiary % kwadraty[0]){ cout << -1; } else{ long long w = 0; int rozmiar; while(wymiarx and wymiary){ if(wymiarx > wymiary){ d = wymiarx; wymiarx = wymiary; wymiary = d; } for(int i = miescisie; i >= 0; i--){ if(wymiarx >= kwadraty[i]){ miescisie = i; rozmiar = kwadraty[miescisie]; break; } } wx = wymiarx; w = 0; for(int i = miescisie; i >= 0; i--){ w += (wx / kwadraty[i]) * (rozmiar / kwadraty[i]); wx -= kwadraty[i] * (wx / kwadraty[i]); } wynik += w * (wymiary / rozmiar); wymiary -= (wymiary/ rozmiar) * rozmiar; } cout << wynik; } } |
English