infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Adrian Diaconu din August 14, 2007, 10:12:56



Titlul: 486 Reactivi
Scris de: Adrian Diaconu din August 14, 2007, 10:12:56
Aici puteţi discuta despre problema Reactivi (http://infoarena.ro/problema/reactivi).


Titlul: Răspuns: 486 Reactivi
Scris de: Gabriel Bitis din August 17, 2007, 15:26:17
Citat
Mumerele de pe linia x+1 reprezinta temperatura minima, respectiv temperatura maxima de stocare a reactivului x.
O mica gresala.. totusi poate fi corectata. (Mumerele)


Titlul: Răspuns: 486 Reactivi
Scris de: Adrian Diaconu din August 19, 2007, 21:05:00
S-a corectat.


Titlul: Răspuns: 486 Reactivi
Scris de: Farcasanu Alexandru Ciprian din Ianuarie 18, 2008, 09:33:07
Avand in vedere ca problema este de clasa a9a, data la oji...ma gandeam ca poate mariti putin limita de timp astfel incat sa nu mai fie nevoie de qsort.... :readthis:


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Grigorean din Ianuarie 18, 2008, 10:37:32
Din cate tin minte, solutia oficiala de la OJI era tot cu qsort :).

Poti sa sortezi si fara qsort si sa-ti intre in timp. Trebuie sa te folosesti de faptul ca temperaturile minime, respectiv maxime sunt in intervalul -100, 100.


Titlul: Răspuns: 486 Reactivi
Scris de: Farcasanu Alexandru Ciprian din Ianuarie 18, 2008, 10:44:53
Din cate tin minte, solutia oficiala de la OJI era tot cu qsort :).

Poti sa sortezi si fara qsort si sa-ti intre in timp. Trebuie sa te folosesti de faptul ca temperaturile minime, respectiv maxime sunt in intervalul -100, 100.

Am luat evaloatoarele oficiale de la OJI si am luat maixm cu un buble/insert sort(pe IA iau 30/40 pcte)

Nu vad la ce m-ai ajuta faptul ca temp. minime maxime =[-100,100], adica eu sortez vectorii in functie de cel din stanga


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Grigorean din Ianuarie 18, 2008, 11:42:33
Gandeste-te asa.... Daca aia avea N = 10.000 de numere, care ar fi intervalul 1..10. Ai sti sa le sortezi eficient fara qsort?

Pe infoarena iei doar 30/40 pentru ca sunt grupate testele. Am vazut ca la un moment dat aveai doar 2TLE, restu testelor iti mergeau :).


Titlul: Răspuns: 486 Reactivi
Scris de: Farcasanu Alexandru Ciprian din Ianuarie 18, 2008, 11:45:44
Nu cred, stiu doar bubble si insert sort...


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Grigorean din Ianuarie 18, 2008, 11:46:21
Nu conteaza ce stii, gandeste-te.


Titlul: Răspuns: 486 Reactivi
Scris de: Farcasanu Alexandru Ciprian din Ianuarie 18, 2008, 20:08:09
deci wefgef, ESTI CEL MAI TARE =D> =D> , acum iau 100, si cel mai "rau" test iau 12 ms ; MULTUMESC MULT  :yahoo:

Later edit: am luat un (i=-100;i<=100;i++) si bla bla bla, la asta te refereai si tu?


Titlul: Răspuns: 486 Reactivi
Scris de: Gabriel Bitis din Ianuarie 18, 2008, 21:10:53
Mie mi'a intrat si cu Bubble...


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Grigorean din Ianuarie 18, 2008, 21:47:41
Da, la forul facut de tine ma refeream :).

Ma bucur ca ti-am fost de folos :P.


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Panturu din Februarie 07, 2008, 11:14:34
am si eu o intrebare .. problema intra in timp cu o complexitate O(200^logN) ?


Titlul: Răspuns: 486 Reactivi
Scris de: Bondane Cosmin din Februarie 07, 2008, 11:43:45
am si eu o intrebare .. problema intra in timp cu o complexitate O(200^logN) ?

De unde ai 200^logN ? Incearca sa o rezolvi intr-o complexitate mai buna, spre exemplu N*logN.


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Panturu din Februarie 08, 2008, 15:59:20
am facuto .. cel mai incet test e de 4 ms insa am 5 teste gresite ... o sa ii gasesc gresala :D


Titlul: Răspuns: 486 Reactivi
Scris de: Budisteanu Ionut Alexandru din Februarie 28, 2008, 10:51:16
Salut

Am si eu o mica intrebare...

"Eu tot nu am inteles  de ce s-a implementat punctarea pe grupe"...
Ex: nu iei un test, si pierzi 50 de puncte, deci mi se pare inutil", intrucat cei de pe Pascal nu pot sa ia 100 usor

Va multumesc...


Titlul: Răspuns: 486 Reactivi
Scris de: Stefan Istrate din Februarie 28, 2008, 10:56:13
Din cauza ca la unele probleme testele erau destul de slabe, existau solutii care luau 80-90 de puncte cu o rezolvare ineficienta. Gruparea testelor s-a facut ca sa te motiveze sa rezolvi de 100, nu sa te multumesti cu 80-90, cautand astfel solutia cea mai buna. Gandeste-te ca nu vei avea mereu norocul sa dai de teste slabe, asa ca un punctaj de 50 in monitor o sa-ti arate ca ceva nu e in regula. :)


Titlul: Răspuns: 486 Reactivi
Scris de: Andrici Cezar din Martie 19, 2008, 16:05:59
var rog frumos sa imi ziceti de ce iau 0 puncte la problema??? zicetimi si mie daca is condiitile gresite dar altfel...


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Grigorean din Martie 19, 2008, 17:14:19
Enuntul e corect, la fel si conditiile :). Greseala se trage de la tine, spor la treaba.


Titlul: Răspuns: 486 Reactivi
Scris de: Anonim din Martie 19, 2008, 21:20:36
Eu cred ca e gresit evaluatorul :D pentru ca am bagat aceasi sursa si pe evaluatorul de la oji si am obtinut doar 100 de puncte iar aici 0


Titlul: Răspuns: 486 Reactivi
Scris de: Pripoae Teodor Anton din Martie 19, 2008, 21:22:31
adica? cum iei 0? ce mesaj iti da?

si nu e gresit... eu am luat 100


Titlul: Răspuns: 486 Reactivi
Scris de: Anonim din Martie 19, 2008, 21:28:01
Eu am 3 teste aici care depasesc 1 sec si au 104 :(( si din resutl testelor sunt ok si la 7 teste scrie 10 puncte si punctaj total 30 de puncte nus cum vine asta


Titlul: Răspuns: 486 Reactivi
Scris de: Gabriel Bitis din Martie 19, 2008, 21:29:57
E alta treaba ca nu e destul de eficient algoritmul tau. Limitele sunt putin mai stranse aici decat la OJI. Daca nu iei tu 100 de puncte nu inseamna ca e gresit evaluatorul.


Titlul: Răspuns: 486 Reactivi
Scris de: Anonim din Martie 19, 2008, 21:37:24
Aha nu am stiut ca sunt mai mari limitele de timp aici scz pentru acuzatii .. :D


Titlul: Răspuns: 486 Reactivi
Scris de: Pripoae Teodor Anton din Martie 19, 2008, 21:38:37
mai  mici limitele de timp :P   tu ce sortare folosesti? ca daca folosesti bubble nu ma mir ca ai TLE :P si iei doar 30 pentru ca sunt grupate testele


Titlul: Răspuns: 486 Reactivi
Scris de: Anonim din Martie 27, 2008, 21:01:32
Am o intrebare la uitati programul meu si sputetimi si mie daca as putea sa modific ceva la el astfel incat sa obtin 100 de p sau trebuie sa ma gandesc la alt algorit mai eficient ?

Cod:
#include<fstream>
using namespace std;
int main()
{int n,j,i,nr;
 int tempmin[250],gasit,tempmax[250],min[8001],max[8001],aux,maxx,minn;
ifstream fin("reactivi.in");
ofstream fout("reactivi.out");

fin>>n;
for(i=1;i<=n;i++)
  fin>>min[i]>>max[i];

for(i=1;i<n;i++)
  for(j=i+1;j<=n;j++)        //sortez vectorul in functie de temp minima
     if(min[i]>min[j])
{aux=min[i];
min[i]=min[j];
min[j]=aux;
aux=max[i];
max[i]=max[j];
max[j]=aux;
}


tempmin[1]=min[1];     //tempmin temperatura minima a fiecarui frigider

tempmax[1]=max[1];      //tempmax temperatura maxima a fiecarui frigider
nr=1;
for(i=2;i<=n;i++)
{gasit=0;
   for(j=1;j<=nr && gasit==0;j++)
{ if(min[i]<tempmin[j])minn=tempmin[j];
     else minn=min[i];
  if(tempmax[j]>max[i]) maxx=max[i];
      else maxx=tempmax[j];
  if(minn<=maxx)
       {gasit=1;
tempmin[j]=minn;   //vad daca intersectia celor doua intervale este nula
tempmax[j]=maxx;
}
}
       if(gasit==0)
   {nr++;                //daca nu e nula ajustez temperaturile din frigider
    tempmin[nr]=min[i];
    tempmax[nr]=max[i];
    }
       }

fout<<nr;
return 0;
}

Va rog spunetimi si mie


Titlul: Răspuns: 486 Reactivi
Scris de: Pripoae Teodor Anton din Martie 27, 2008, 22:56:46
tu ai o sortare in N*N care nu este foarte eficienta... incearca sa pui alta... presupun ca nu stii qsort cu structuri  :P... gandeste-te ca tu ai temperaturile cuprinse intre -100 si 100... te ajuta la ceva? (le pui in galeti (cate sunt cu -100 cate cu -99... etc (bucket sort  o(n+200)   )      ) adica incearca bucket sort sau incearca cu qsort... amandoua merg rapid (cu sort din STL nu prea stiu exact cum e pt structuri pt ca eu lucrez in c nu in c++)


Titlul: Răspuns: 486 Reactivi
Scris de: Anonim din Martie 29, 2008, 15:40:52
Eu cred ca ar trebui sa mariti limita de timp la 0,2 ptr ca la oji e de o secunda ... parerea mea este ca daca voi reusiti  sa faceti pr in timp foarte scurt nu trebuie sa puneti asa de mici limitele de timp . Daca ati mai mari limitele ar putea si cei incepatori sa faca cate ceva ..... daca intra vreun incepator care e prin a 9 a si care a facut pr asta de 100 de p la oji si intra pe site-ul asta ptr prima oara si adauga sursa lui si vede ca a obtinut doar 30 de p eu cred ca nu face altceva decat sa se descurajeze sau sa zica ca e evaluatorul gresit  ptr ca la oji a obtinut 100 de p cum am zis si eu :D .......
Asta e parerea mea ..... sper sa nu va suparati ... adica nici nu aveti de ce .


Titlul: Răspuns: 486 Reactivi
Scris de: Bogdan-Alexandru Stoica din Martie 29, 2008, 15:49:06
limita de timp difera deoarece sistemele de operare si compilatoarele sunt diferite fata de oji. o sursa evaluata pe windows va rula mai incet decat aceeasi sursa rulata sub linux. gnu face niste optimizari atunci cand executa o sursa, optimizari pe care borland-ul nu le face. plus de asta, sursa oficiala intra sub 0.1 pe infoarena, asa ca nu vad de ce ar trebui marita limita.


Titlul: Răspuns: 486 Reactivi
Scris de: Anonim din Martie 29, 2008, 16:00:51
Ai dreptate ca intra ca si eu am incercat acu dar totusi nu mi se pare prea diferita sursa de la oji fata de aia a mea si totusi iau TLE pe 3 teste o sa o iau de la capat peste o sap sa vad daca reusesc sa o fac singur de 100


Titlul: Răspuns: 486 Reactivi
Scris de: Bogdan-Alexandru Stoica din Martie 29, 2008, 16:10:30
inseamna ca ai un algoritm mai incet decat cel al comisiei, deci mai poate fi imbunatatit :P


Titlul: Răspuns: 486 Reactivi
Scris de: Simionescu Andrei din Aprilie 04, 2008, 23:26:45
Citat
Orice frigider are un dispozitiv cu ajutorul caruia putem stabili temperatura (constanta) care va fi in interiorul acelui frigider (exprimata intr-un numar intreg de grade Celsius).
Citat
Temperatura minima, respectiv maxima a fiecarui reactiv sunt cuprinse in intervalul [-100,100].

Chiar daca nu are nicio relevanta, si-a dat seama cineva ca intr-un frigider e usor aiurea sa ai 100 de grade?  :D


Titlul: Răspuns: 486 Reactivi
Scris de: Herpesius din Aprilie 05, 2008, 21:24:09
da, lol :) ....

e geniala faza


Titlul: Răspuns: 486 Reactivi
Scris de: Emanuel Cinca din Mai 13, 2008, 20:16:13
Citat
Chiar daca nu are nicio relevanta, si-a dat seama cineva ca intr-un frigider e usor aiurea sa ai 100 de grade?

Bine zici :rotfl:... eventual daca le zicea incaperi speciale... frigider ce poate fierbe apa?... probabil s-a stricat :D


Titlul: Răspuns: 486 Reactivi
Scris de: MciprianM din Ianuarie 25, 2009, 15:37:08
Am luat wrong answer pe testul 5 cu sort din stl. Pe testul 5 de la sectiunea downloads/oji2004... cand rulez la mine pe calculator imi baga valori straine in sir.
Cam asa arata partea de sortare.:
Cod:
#include<fstream>    
#include<algorithm>   
using namespace std;   
struct Interval{   
  int x,y;   
};   
Interval reac[8192];   
int cmp(Interval a, Interval b){   
  if(((a).x)>((b).x)) return 0;     
  else{ 
    if( ((a).x)==((b).x) ) 
        if(((a).y)>((b).y)) 
           return 0; 
  } 
  return 1;   
}   
......

sort(reac, reac+n, cmp);
daca inlocuiesc sortul cu un bubblesort iau 100


Titlul: Răspuns: 486 Reactivi
Scris de: Pripoae Teodor Anton din Ianuarie 25, 2009, 15:44:00
Fa ceva de genul asta:
Cod:
#include<fstream>    
#include<algorithm>   
using namespace std;   
struct Interval{   
  int x,y;   
};   
Interval reac[8192];   
int cmp(Interval a, Interval b){   
  if (a.x != b.x)
     return a.x < b.x;
  return a.y > b.y;
}   
......

sort(reac, reac+n, cmp);



Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Grigorean din Ianuarie 25, 2009, 16:21:31
Functia de comparare trebuie sa intoarca true cand primul parametru este stric mai mic decat al doilea, si false in caz contrar.


Titlul: Răspuns: 486 Reactivi
Scris de: MciprianM din Ianuarie 27, 2009, 13:46:21
@toni: imi merge cum ai zis. ms.
@wefgef: de ce nu merge daca returnez true in functia de cmp in cazul in care primul parametru e egal cu al doilea?


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Grigorean din Ianuarie 28, 2009, 19:46:25
Pentru ca nu e bine. Nu stiu exact cum functioneaza sortul din STL, dar are nevoie de < strict.


Titlul: Răspuns: 486 Reactivi
Scris de: MciprianM din Ianuarie 29, 2009, 12:15:11
Cu mai mic strict iau 100. O sa tin minte pe viitor. :ok:


Titlul: Răspuns: 486 Reactivi
Scris de: Berceanu Cristian din Martie 05, 2009, 11:59:30
Eu nu inteleg de ce pentru
-10 10
10 12
-20 10
7 10
7 8
se afiseaza 2 :| pt ca mie mi se pare ca trebuie un singur frigider. Scuzati-ma poate gresesc eu aici, anume frigiderul cu -20 10 le cuprinde pe toate, nu?

PS: Ce-i aia karma si cum iti creste si cum iti scade ? :D


Titlul: Răspuns: 486 Reactivi
Scris de: Andrei Misarca din Martie 05, 2009, 12:13:53
Frigiderele sunt setate la o temperatura, nu un interval de temperaturi.
In exemplul de mai sus, ai un frigider setat la 10 grade si unul la 7 sau 8 grade.

Karma poate fi modificata de ceilalti utilizatori in functie de impresia pe care o faci :)


Titlul: Răspuns: 486 Reactivi
Scris de: Berceanu Cristian din Martie 05, 2009, 12:43:07
M-am prins, multumesc.


Titlul: Răspuns: 486 Reactivi
Scris de: irimias robert din Martie 24, 2009, 19:48:53
salut, imi puteti explik shi mie pls k pt un prost dc sortarea asta:
Cod:
void ordonare()  
{    for (int i=100; i>=-100; i--) 
     for (int j=1; j<=n; j++) 
         if (mi[j]==i) 
         {  int aux1=mi[j], aux2=ma[j]; 
        for (int k=j-1; k>=1; k--) 
        {    mi[k+1]=mi[k]; 
             ma[k+1]=ma[k]; 
        } 
        mi[1]=aux1; 
        ma[1]=aux2; 
         } 

este mai ineficienta k bubble? .. ms
[editat de moderator] foloseste tag-ul "code" cand postezi cod pe forum


Titlul: Răspuns: 486 Reactivi
Scris de: Florian Marcu din Martie 24, 2009, 21:02:40
void ordonare() 
{    for (int i=100; i>=-100; i--) 
     for (int j=1; j<=n; j++) 
         if (mi[j]==i) 
         {  int aux1=mi[j], aux2=ma[j]; 
        for (int k=j-1; k>=1; k--) 
        {    mi[k+1]=mi[k]; 
             ma[k+1]=ma[k]; 
        } 
        mi[1]=aux1; 
        ma[1]=aux2; 
         } 

Chiar nu inteleg ce faci acolo, dar banuiesc ca in loc de
Cod:
 mi[1]=aux1;  
        ma[1]=aux2; 

ar trebui sa pui
Cod:
mi[j] = aux1; ma[j] = aux2;

Asta e ceea ce am remarcat. S-ar putea sa fie si altceva. Incearca totusi o sortare O(N) [ hint: foloseste faptul ca mi[] si ma[] sunt foarte mici. (din intervalul -100,100) ]


Titlul: Răspuns: 486 Reactivi
Scris de: Stefan-Alexandru Filip din Martie 24, 2009, 21:17:57
salut, imi puteti explik shi mie pls k pt un prost dc sortarea asta:
Cod:
void ordonare()  
{    for (int i=100; i>=-100; i--) 
     for (int j=1; j<=n; j++) 
         if (mi[j]==i) 
         {  int aux1=mi[j], aux2=ma[j]; 
        for (int k=j-1; k>=1; k--) 
        {    mi[k+1]=mi[k]; 
             ma[k+1]=ma[k]; 
        } 
        mi[1]=aux1; 
        ma[1]=aux2; 
         } 

este mai ineficienta k bubble? .. ms

Sortarea este corecta, si are complexitatea O(n2), deci in cazul problemei de fata difera fata de bubble-sort doar printr-o constanta.
O rezolvare a problemei folosind acest algoritm nu va intra in timp, cum nu intra nici folosind algoritmul bubble-sort. Trebuie folosita o sortare in O(n*log(n)) sau O(n).


Titlul: Răspuns: 486 Reactivi
Scris de: irimias robert din Martie 24, 2009, 21:32:10
aha ms de raspuns (o sa ma gandesc la faptu k valorile is mici nush ink nu miam dat seama de nik da vad io) shi ink nush ces alea cu sortari shi functii in O(n*logn) sau orice fel de structuri imbunatatite shi nici nush de unde sanvat asta e marea mea dilema oricum ms


Titlul: Răspuns: 486 Reactivi
Scris de: Emanuel Cinca din Martie 24, 2009, 22:53:30
Mie mi-a intrat cu sortarea asta, nu am folosit Quick sau Merge...

Cod:
for(i=0;i<n;i++)
        for(j=i+1;j<n;j++)
if(a[i].y>a[j].y)
{ aux=a[i];
a[i]=a[j];
a[j]=aux;
}


Titlul: Răspuns: 486 Reactivi
Scris de: irimias robert din Martie 25, 2009, 08:30:08
se poate oricum mi-am dat seama de cum s-ar putea sorta mult mai eficient shi acum iau 100  :ok: :yahoo:


Titlul: Răspuns: 486 Reactivi
Scris de: zloteanu adrian nichita din Iulie 27, 2009, 13:19:36
Cod:
#include<fstream.h>
#include<algorithm>
struct casa {int a,b;};
int func(casa a,casa b)
{if(a.a==b.a)
return a.b<b.b;
return a.a<b.a;}
int main()
{int n,i,frig=1,nr;
casa v[101];
...
sort(v+1,v+n+1,func);
...
return 0;}
Da eroare: "sort was not declared in this scope"


Titlul: Răspuns: 486 Reactivi
Scris de: Gabriel Bitis din Iulie 27, 2009, 14:06:26
Pune "using namespace std;" dupa #include.


Titlul: Răspuns: 486 Reactivi
Scris de: zloteanu adrian nichita din Iulie 27, 2009, 15:38:17
multumesc
eu sortez vectorul dupa min,apoi declar 2 variabile: nr=-101 si frig=0
daca v[ i].b>nr
 frig++ si nr=v[ i].b
la sfarsit afisez frig
unde gresesc?

[Editat de moderator] Cand vrei sa afisezi indici de vectori gen [ i ], pune un spatiu deoarece forumul il interpreteaza ca text italic.


Titlul: Răspuns: 486 Reactivi
Scris de: Paul-Dan Baltescu din Iulie 27, 2009, 17:00:03
Foloseste
Cod:
using namespace std;


Titlul: Răspuns: 486 Reactivi
Scris de: Sima Cotizo din Iulie 30, 2009, 14:13:58
Foloseste std::sort in loc de sort sau pune dupa #include "using namespace std;".


Titlul: Răspuns: 486 Reactivi
Scris de: Pavel Razvan din Septembrie 10, 2009, 17:41:53
Imi da cineva un hint despre ce gresesc ?   
Please !!!


Titlul: Răspuns: 486 Reactivi
Scris de: A Cosmina - vechi din Septembrie 10, 2009, 20:31:30
Pai tu cum te-ai gandit?

Hint: faci o sortare si apoi verifici niste proprieteti. :)


Titlul: Răspuns: 486 Reactivi
Scris de: Pavel Razvan din Septembrie 12, 2009, 10:10:03
Am luat suta !
Merci ! =D&gt;


Titlul: Răspuns: 486 Reactivi
Scris de: Idomir Alin din August 24, 2010, 12:24:00
La al treilea exemplu, nu ar trebui rezultatul sa fie 1?


Titlul: Răspuns: 486 Reactivi
Scris de: Lazari Mihai din August 24, 2010, 23:11:10
La al treilea exemplu, nu ar trebui rezultatul sa fie 1?
Nu. Nu există o temperatură la care să se poată păstra toţi reactivii. De exemplu intervalele [10,12] şi [7,8] nu se intersectează, deci reactivii respectivi nu pot fi păstraţi în acelaşi frigider.


Titlul: Răspuns: 486 Reactivi
Scris de: Mihai Visuian din August 24, 2011, 13:07:12
la exemplul 2 nu trebuie sa fie 4????


Titlul: Răspuns: 486 Reactivi
Scris de: Petru Trimbitas din August 24, 2011, 14:07:42
Nu pt ca intervalele sunt inchise :D


Titlul: Răspuns: 486 Reactivi
Scris de: FMI Ekart Dragos-Ioan din Octombrie 13, 2011, 16:05:21
se poate face si fara sortare !


Titlul: Răspuns: 486 Reactivi
Scris de: UBB Bora Dan din Ianuarie 05, 2012, 12:03:45
La 3 teste imi da TLE si iau numai 30 de pct... ](*,) ](*,)
Sortarea ii de vina? (folosesc Bubble-sort)


Titlul: Răspuns: 486 Reactivi
Scris de: UBB Bora Dan din Ianuarie 05, 2012, 12:57:04
La 3 teste imi da TLE si iau numai 30 de pct... ](*,) ](*,)
Sortarea ii de vina? (folosesc Bubble-sort)

Am schimbat bubble cu qSort si da acuma iau 100!! :yahoo: :yahoo: :yahoo: :yahoo: :yahoo:


Titlul: Răspuns: 486 Reactivi
Scris de: Simoiu Robert din Ianuarie 05, 2012, 15:37:50
E logic sa fie asa, Bubble-sort e O(N2), pe cand Quicksortul e O(N log N) (teoretic complx. worst-case e O(N2), dar in practica tot N log N e).


Titlul: Răspuns: 486 Reactivi
Scris de: Ciprian Stirbu din Februarie 12, 2012, 17:49:11
La sursa mea la 3 teste imi spune ca e incorect..dar pe campion si la testele de la oji imi da toate corecte?..care e problema? :?


Titlul: Răspuns: 486 Reactivi
Scris de: Cobzaru Adrian-Andrei din Aprilie 16, 2012, 11:11:10
Eu am reusit sa iau 100 folosind sortarea aia din STL.Am luat de aici functia aia cmp si nu prea inteleg cum ajuta in sort(v,v+n,cmp).Imi poate explica cineva, va rog?


Titlul: Răspuns: 486 Reactivi
Scris de: Simoiu Robert din Aprilie 16, 2012, 11:13:06
Nu inteleg, cum adica cum ajuta ? In ce sens ?


Titlul: Răspuns: 486 Reactivi
Scris de: Cobzaru Adrian-Andrei din Aprilie 16, 2012, 17:13:35
Pai, cum se modifica sort-ul daca adaugi cmp-ul ala?Eu daca am
struct vector_dublu{int a;int b;};
si vreau sa sortez doar dupa valoarea a, trebuie sa pun cmp-ul ala?


Titlul: Răspuns: 486 Reactivi
Scris de: Mihai Calancea din Aprilie 16, 2012, 18:23:40
Al treilea parametru pe care il poti dai la sort este intr-adevar, o functie de comparare. Adica practic ea, primind ca parametri doua elemente de tipul specificat, X si Y, raspunde la intrebarea "La final trebuie ca X sa apara inaintea lui Y in sortare?". Daca functia ta returneaza true, inseamna ca da, dupa tine X < Y.

Daca vrei sa sortezi descrescator dupa a vei face

Cod:

bool cmp(int X , int Y) {
if(X.a > Y.a) return true;
return false;
}


Astfel ii spui ca X trebuie sa fie inaintea lui Y daca X.a este mai mare decat Y.a.
E foarte bine ca ai intrebat, dar in viitor te sfatuiesc sa nu mai trimiti cod care nu stii ce face :)


Titlul: Răspuns: 486 Reactivi
Scris de: Cobzaru Adrian-Andrei din Aprilie 16, 2012, 19:28:10
OK...Multumesc de sfaturi si explicatii, dar mai am o intrebare...daca vreau sa sortez vectorul cu mai mult de o dimensiune, trebuie neaparat sa exisiste functia asta?


Titlul: Răspuns: 486 Reactivi
Scris de: FII Florea Toma Eduard din August 30, 2012, 16:34:37
Daca folosesti sortarea din stl,ai nevoie aproape intotdeauna de functia aceea.Numai daca sortezi crescator,si o structura cu o singura dimensiune,se poate omite,altfel...ai nevoie de o functie de comparare.


Titlul: Răspuns: 486 Reactivi
Scris de: Dan H Alexandru din Septembrie 01, 2012, 10:46:07
Sau daca folosesti pair-uri...


Titlul: Răspuns: 486 Reactivi
Scris de: Mocanu George din Decembrie 07, 2013, 20:58:37
M-am cam chinuit putin la aceasta problema deoarece nu luam 3 teste. De ce nu le luam? Fiindca nu sortam reactivii dupa temperatura minima inainte sa-i bag in frigidere.
http://www.infoarena.ro/job_detail/1040761?action=view-source - sursa de 20 de puncte, fara sortare
http://www.infoarena.ro/job_detail/1049835?action=view-source - sursa de 100 de puncte, cu sortare
Intrebare mea: De ce trebuie mai intai sortati reactivii?


Titlul: Răspuns: 486 Reactivi
Scris de: Alexandru Valeanu din Decembrie 07, 2013, 23:18:01
Gandeste problema ca intersectie de intervale si reprezinta-le pe axa si o sa-ti dai seama de ce.


Titlul: Răspuns: 486 Reactivi
Scris de: Bejenariu Ionut Daniel din Ianuarie 11, 2014, 10:42:36
nu inteleg cica ar trebui ca intre cele n insiruiri de min max sa intre in alta insiruire iar daca nu sa se afiseze n dar pe un  exemplu nu e asa


Titlul: Răspuns: 486 Reactivi
Scris de: Mocanu George din Ianuarie 11, 2014, 10:54:39
nu inteleg cica ar trebui ca intre cele n insiruiri de min max sa intre in alta insiruire iar daca nu sa se afiseze n dar pe un  exemplu nu e asa
Pe care exemplu "nu e asa"? Probabil ai inteles tu gresit enuntul.


Titlul: Răspuns: 486 Reactivi
Scris de: Bejenariu Ionut Daniel din Ianuarie 11, 2014, 10:59:52
pai ca sa fie un numar cat mai mic de frigidere nu ar trebui sa vedem care substante am nevoie de acelasi frigider adica dintre 2 substante sa fie una care are min mai mare decat celalalt si max mai mic decat acea subst nu


Titlul: Răspuns: 486 Reactivi
Scris de: Mocanu George din Ianuarie 11, 2014, 23:26:20
pai ca sa fie un numar cat mai mic de frigidere nu ar trebui sa vedem care substante am nevoie de acelasi frigider adica dintre 2 substante sa fie una care are min mai mare decat celalalt si max mai mic decat acea subst nu
Bagi o substanta in frigider, setezi temperaturile si pe masura ce bagi si alte substante in acel frigider modifici temperaturile.
fmin=temperatura minima a frigiderului si fmax= temperatura maxima a frigiderului. Vei avea urmatoarele situatii: intervalul [min,max] este cuprins de intervalul [fmin,fmax]/doar max apartine intervalului [fmin,fmax]/doar min apartine lui [fmin,fmax].


Titlul: Răspuns: 486 Reactivi
Scris de: Dart Monkey din Iulie 19, 2016, 14:57:50
Ce trebuie sortat si cum faci dupa sortare????? :angry: :angry: :angry: :angry: :angry:


Titlul: Răspuns: 486 Reactivi
Scris de: Cristian Boicu din Februarie 06, 2017, 14:25:33
Killed by signal 11(SIGSEGV).-Cum sa inteleg asta?


Titlul: Răspuns: 486 Reactivi
Scris de: George din Februarie 06, 2017, 21:01:25
http://www.infoarena.ro/documentatie/evaluator
"11(SIGSEGV): Segmentation fault. Asta in 99% din cazuri inseamna ca ai probleme cu accesul la memorie. Ai iesit din limitele unui vector, ai facut stack overflow, etc."

Daca tot nu ai inteles, iti sugerez sa vizitezi link-ul asta: http://lmgtfy.com/?q=killed+by+signal+11    :-'


Titlul: Răspuns: 486 Reactivi
Scris de: Iancu Vlad din Septembrie 04, 2017, 19:04:56
eu iau incorect la testele 2,3,9. Mai dati-mi niste teste va rog sau spuneti-mi ce e special la aceste trei teste daca stiti