Pereiti prie turinio

Lietuvos Mokinių informatikos olimpiada


Rekomenduojami pranešimai

Krc,72/80,nepasiseke su dazymu,kazkokia sunki uzduotis pasirode,labai jau prigrybavo su sita salyga... ir siaip luzinejo sistema.. ir dar net sprendimu neikelia..

Dazymas:

#include <iostream>
#include <fstream>
#include <stdlib.h> // abs() funkcija,su cmath kazko neveikia...
std::ifstream fd("dazymas-vyr.in");
std::ofstream fr("dazymas-vyr.out");
/*32 taskai is 40 olimp.mif.vu.lt,nepraeina 3 3 2 1 testo :*/
int main()
{
   int N1,N2,M1,M2,suma1,dienos = 0,loginis = 0,loginis1 = 0;
   fd >> N1 >> N2 >> M1 >> M2;
   suma1 = N1 + N2;
   while(suma1 > 0) // algoritmas
   {
   suma1 -= M1 + M2;
   dienos++;
   }
   dienos = suma1 < 0 && M1 < N1 && M2 > N2 || M2 < N2 && M1 > N1 && abs(N1 + N2 - M1 + M2) < 0 ? dienos = dienos + 1 : dienos; // vietoj daug if'u supaprastintas loginis veiksmas
   dienos = abs((N1 + N2) - ((M1 + M2) * 2)) <= 0 ? dienos = dienos + 1 : dienos; // vietoj daug if'u supaprastintas loginis veiksmas
   loginis = abs((N1 + N2) - ((M1 + M2) * dienos)) == 0 ? loginis = dienos - 1: dienos; // vietoj daug if'u supaprastintas loginis veiksmas
   if(dienos == loginis)
   {
   fr << loginis; //rezultato isvedimas i faila
   }
   else
   {
   fr << dienos; //rezultato isvedimas i faila
   }
}

Dviratininkas:

#include <iostream>
#include <fstream>
#include <stdlib.h> // abs(),su cmath kazkodel neveikia..
/*40 is 40 tasku olimp.mif.vu.lt testavimo sistemoje*/
std::ifstream fd("dviratininkas-vyr.in");
std::ofstream fr("dviratininkas-vyr.out");
int main()
{
   int N = 0,T = 0,minutes = 0,suma = 0;
   fd >> N >> T;
   int T1[N],K1[N];
   for(int i = 0;i < N; i++){fd >> T1[i] >> K1[i];} //failu skaitymai
   while(minutes < T){for(int i = 0;i < N && minutes < T; i++){
   minutes += T1[i];
   suma += minutes > T ? abs(abs(T - minutes) - T1[i]) * K1[i] : T1[i] * K1[i]; // supaprastintas algoritmas vietoj daug if'u
       }
   }
   fr << suma; // rezultatu isvedimas
}

Redagavo geras1
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Del sistemos tai nieko, nesitikejo tokio susidomejimo gal, buna gi :D

 

Deja, padariau tik su dviratininku, dazymo uzduotis kazko pasirode per sunki :D (reiktu gal pradet mokytis ;D ), bet visgi patenkintas savim, nes galim sakyt mokomes be mokytojo...(o namuos dar net FPS neturiu :D )

 

program dviratininkas_vyr;
type Nmas = array[1..10] of integer;
type Tmas = array[1..20] of integer;
var pd,rez:text;
N:integer;
T,i,h,atstumas:integer;
A:Nmas;
B:Tmas;
begin
assign(pd,'dviratininkas-vyr.in');
reset(pd);
Read(pd,N);read(pd,T);
for i:=1 to N do
               begin
               read(pd,A[i]);
               read(pd,B[i]);
               end;
               close(pd);
While T > 0 do
begin
               for i := 1 to N do
               begin
               if T > A[i] then
               begin
               atstumas:= atstumas + A[i]*B[i];
               T:=T-A[i];

               end

               else
               begin
               A[i] := T;
               atstumas:= atstumas + A[i]*B[i];
               T:= T - A[i];
               end


               end;
   end;
   assign(rez, 'dviratininkas-vyr.out');
   rewrite(rez);
   write(rez, atstumas);
   close(rez);
end.

Redagavo lukyzas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Fainai, tik dabar sužinojau, kad egzistuoja ta "varžybų sistema" :D

 

Kiek supratau ten patikrina tavo programa su visais testais ir parašo kiek už kuriuos testus gavai taškų, ir kiek bendrai gavai taškų?

 

Edit: nu va išbandžiau tą sistemą... Gaila, kad anksčiau neatradau..

Redagavo Pattio
Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <iostream>
#include <fstream>
std::ifstream fd("dazymas-vyr.in");
std::ofstream fr("dazymas-vyr.out");
int main()
{
   int N1,N2,M1,M2,suma1, suma2, dienos;
   fd >> N1 >> N2 >> M1 >> M2;
   suma1 = N1 + N2;
   suma2 = M1 + M2;
   if (M1 >= N1 && M1 >= N2 && M2 >= N1 && M2 >= N2)
       dienos = 1;
   else if (M1 < N1 && M1 < N2 && M2 < N1 && M2 < N2)    {
       dienos = suma1 / suma2;
       if (suma1 % suma2) dienos++;
   }
   else {
       dienos = N1 / suma2;
       if (N1 % suma2) dienos++;
       dienos += N2 / suma2;
       if (N2 % suma2) dienos++;
   }

   fr << dienos;

}

 

Atrodo veikia dazymas toks :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...
  • po 4 savaičių...

as ir patekau,96/100 tasku,kiek tu Silke surinkai?siais metais reikes pasistengt tau resp.atrankineje dalyje,nes kazicko konkurso nebera.:D

Kaip tai nebėra?! :(

Puslapis šiuo metu tvarkomas.

Aš dar turiu vilčių :D

 

Surinkau 47 ir to užteko būt antram. Net laimėtojas tik 52 surinko... :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

tai kaip tu cia 47 surinkai?as 56/80 surinkau pagal vertinimo sistema.

40 iš įstrižainių ir 7 iš šifro. Čia jau galutinis komisijos vertinimas. O sistema apskritai mano šifro nevertino. Išvis tas uždavinys kažkoks nesusipratimas buvo: lapuose, kuriuos gavom, uždavinys vadinosi "sifravimas-vyr", sistemoje – "sifras-vyr". Programa lokaliai puikiai rašo, o įkėlus – kaip tuščias, taip tuščias failas :) (taip, bandžiau įvairius rezultatų failo vardus)

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...