Robię właśnie zadanie z VII OIG oto treść
Pietrowiec
VII OIG — zawody indywidualne, etap III. 25 V 2013
Dostepna pamiec: 64 MB.
Jas postanowił zrobic wszystkim niespodzianke — upiec wielkie ciasto. Niestety, w ksiazce
kucharskiej były jedynie przepisy na ciasta małe. . . Na szczescie chłopiec nie zraził sie
i postanowił, ze zrobi pietrowiec — najnizsza warstwa bedzie wygladała tak, jak nakazuje
przepis, a kazda nastepna bedzie dwa razy wieksza od poprzedniej. Zadowolony z
pomysłu Jas zabrał sie za liczenie, na ile warstw starczy mu składników. Pomóz mu.
Wejscie
W pierwszym wierszu standardowego wejscia zapisano liczbe N oznaczajaca liczbe róznych
składników. W drugim wierszu wejscia znajduje sie N liczb — liczba Si oznacza, ze Jas ma w
posiadaniu Si dekagramów składnika nr i. Trzeci wiersz zawiera przepis na ciasto, równiez N liczb — liczba Ci
oznacza, ze na wykonanie najnizszej warstwy ciasta potrzeba Ci dekagramów składnika nr i.
Co najmniej jedna z liczb Ci bedzie niezerowa (nie da sie zrobic ciasta z niczego).
Wyjscie
W pierwszym wierszu standardowego wyjscia powinna znalezc sie jedna liczba — liczba warstw, jakie moze
upiec Jas, zanim bedzie musiał pobiec do sklepu.
Przykłady
Wejscie:
2
7 3
1 1
Wyjscie:
2
Wejscie:
3
15 17 11
2 2 1
Wyjscie:
3
Wejscie:
5
10 13 12 18 10
1 3 6 9 11
Wyjscie:
0
i w każdym z 13 testów test A jest dobrze natomiast test B. Ma ktoś może pomysł co robię źle? Oto kod:
#include<iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
long long int t,a,m=33333,l=0;
cin>>t;
int tab[t], tab2[t];
for(int i=0;i<t;i++){
cin>>tab[i];
}
for(int i=0;i<t;i++){
cin>>tab2[i];
}
for(int i=0;i<t;i++){
if(tab2[i]!=0){
while(tab[i]>tab2[i]){
l++;
tab2[i]=tab2[i]*2;
}
if(l<m) m=l;
l=0;
}
}
cout<<m<<endl;
return 0;
}