infoarena

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



Titlul: 496 Rj
Scris de: Adrian Diaconu din August 14, 2007, 10:34:59
Aici puteţi discuta despre problema Rj (http://infoarena.ro/problema/rj).


Titlul: Răspuns: 496 Rj
Scris de: Ionescu Vlad din August 14, 2007, 14:55:33
Ceva nu e in ordine cu problema asta. Solutia mea care ia 100 ( dupa multe batai de cap ca sa-mi dau seama ca de fapt lungimea traseului se numara de la 1, nu de la 0, contrazicand exemplul ) afiseaza 3 3 2 pe exemplu.


Titlul: Răspuns: 496 Rj
Scris de: Florian Marcu din August 14, 2007, 15:14:07
Ceva nu e in ordine cu problema asta. Solutia mea care ia 100 ( dupa multe batai de cap ca sa-mi dau seama ca de fapt lungimea traseului se numara de la 1, nu de la 0, contrazicand exemplul ) afiseaza 3 3 2 pe exemplu.

Dap. Si solutia mea da la fel. Imi cer mii de scuze. Am modificat.  :aha: Voi fi mai atent pe viitor.


Titlul: Răspuns: 496 Rj
Scris de: Dumitran Adrian Marius din August 15, 2007, 17:52:42
(cred) in exemplu cel putin prima linie are m-1 caractere adica lipseste ultimul spatiu


Titlul: Răspuns: 496 Rj
Scris de: Bondane Cosmin din August 15, 2007, 21:52:46
Deci care este tmin in exemplu ? 2 sau 3, pentru ca la explicatie este unul, iar la raspuns altul.


Titlul: Răspuns: 496 Rj
Scris de: Ionescu Vlad din August 15, 2007, 22:09:48
3


Titlul: Răspuns: 496 Rj
Scris de: Bondane Cosmin din August 17, 2007, 18:03:57
Sigur sunt bune testele? Pentru ca nu iau niciun test, iar verificand cu testele oficiale nu am ratat niciun test. Ma mir sa fi gasit 10 cazuri in care solutia mea sa nu mearga  :-s.


Titlul: Răspuns: 496 Rj
Scris de: Paul-Dan Baltescu din August 17, 2007, 18:10:02
Eu am luat 100 si sunt destul de sigur ca sunt testele oficiale :). Ai verificat ca solutia ta sa fie minima ca pozitie (linie minima, apoi coloana minima)?


Titlul: Răspuns: 496 Rj
Scris de: Bondane Cosmin din August 17, 2007, 18:13:00
Da, am verificat  :-' ... Ciudat dar am luat 100 pana la urma, pb la citire se pare  :-k

Aveam fgets(linie,M+2,fin) si am inlocuit cu fgets(linie,114,fin) si a mers. Nu inteleg de ce ? Pentru ca pe linie ar trebui sa fie M caractere urmate de un '\n', nu ?


Titlul: Răspuns: 496 Rj
Scris de: Paul-Dan Baltescu din August 17, 2007, 19:25:06
Testele sunt a la OJI. S-ar putea ca uneori sa aiba in final /n/r.


Titlul: Răspuns: 496 Rj
Scris de: Ionescu Victor Cristian din August 20, 2007, 17:53:56
problema asta am avuto si eu.citeam cu getchar() in loc de fgets si aveam caracatere in plus nu stiu de ce. Mersi pentru hint.  :)


Titlul: Răspuns: 496 Rj
Scris de: nespecificat din Februarie 29, 2008, 18:41:45
Am si eu nevoie de putin ajutor. Se intampla ceva ce imi depaseste capacitatea de intelegere  ](*,). Am trimis sursa si imi da un 0 mare si frumos pe ea si nu inteleg de ce. M-am verificat cu toate testele de la OJI si merge , dar aici 0. Si mai e ceva...am vazut ca timpii de executie sunt foarte mici...asa ca m-am gandit ca poate nu citeste cum trebuie ( sau mai exact deloc) din fisier, cu toate ca , repet , am verificat cu toate testele de la OJI si a dat bine. Poate sa ma ajute cineva...o idee, ce s-ar putea sa fie gresit?


Titlul: Răspuns: 496 Rj
Scris de: Adrian Diaconu din Februarie 29, 2008, 19:17:34
Nu era de la tine greseala. M-am uitat peste fisierele de intrare si erau in format windows. Le-am refacut in format unix. (diferenta apare la sfarsitul de linie \r\n in windows, \n in unix)


Titlul: Răspuns: 496 Rj
Scris de: nespecificat din Februarie 29, 2008, 19:23:52
Multumesc frumos. Deja devenea exasperant, nu stiam ce sa-i mai fac  ...oricum tot ratez doua teste asa k mai am ceva de lucru  :D.


Titlul: Răspuns: 496 Rj
Scris de: Adrian Diaconu din Februarie 29, 2008, 19:26:55
Pentru cele 2 teste ai grija acolo cand alegi minimul trebuie sa te uiti in toata matricea, tu nu te uiti decat de la i>a si j>b. Deasemenea ai grija ca mai trebuie sa ai la un moment dat un if(l_min==i). (sau poti pur si simplu sa elimini toate ifurile respective deoarece din felul in care parcurgi matricea stii sigur ca intai treci prin i minim si in caz de egalitte prin j minim)


Titlul: Răspuns: 496 Rj
Scris de: nespecificat din Februarie 29, 2008, 19:33:44
Dap...am vazut in sfarsit toata faza cu if-urile . Nu m-am prins initial ca oricum minimul are linia si coloana minima. Am rezolvat treaba si am luat 100 :banana: :banana:
Merci de ajutor :D


Titlul: Răspuns: 496 Rj
Scris de: Dragos Oprica din Aprilie 18, 2008, 07:47:00
va rog si eu putin ajutor
am reusit sa "storc" 90 puncte daca numar testele corecte

testul 8 il pic si mam uitat pe cel de la oji am o mica scapare, dar nu stiu ce ar putea fi :)

any help?

here is the source: http://infoarena.ro/job_detail/181255?action=view-source


Titlul: Răspuns: 496 Rj
Scris de: Bogdan-Alexandru Stoica din Aprilie 18, 2008, 09:08:17
problema s-a dat la OJI in 2004. arhiva o gasesti aici (http://infoarena.ro/downloads#oji).


Titlul: Răspuns: 496 Rj
Scris de: Dragos Oprica din Aprilie 18, 2008, 12:44:56
problema s-a dat la OJI in 2004. arhiva o gasesti aici (http://infoarena.ro/downloads#oji).

da stiu k sa dat la oji 2004 :P

mam si uitat pe teste si am si vazut testul 8 (ala il busesc) dar e prea mare ca sa verific cu watch :P

ma gandeam k poate cineva care are timp si chef sa se uite peste sursa mea mi-ar putea zice ce e gresit:)

thanks anyways, guys


Titlul: Răspuns: 496 Rj
Scris de: Lucian Boca din Aprilie 18, 2008, 13:50:54
testul 8 il pic si mam uitat pe cel de la oji am o mica scapare, dar nu stiu ce ar putea fi :)

any help?

here is the source: http://infoarena.ro/job_detail/181255?action=view-source

Fii atent cand faci update la matrice: la un anumit pas, poti updata si elemente care au valoarea mai mare decat zero, daca distanta gasita pana atunci este mai mare decat pas+1. Pentru a rezolva asta, trebuie sa mai adaugi o conditie in if:
Cod:
if (a[i-1][j]==0 && (r[i-1][j]==0 || r[i-1][j]>pas+1) && i-1<=n && i-1>=1)

Sau poti initializa toate elementele cu o valoare foarte mare si apoi modifica if-urile astfel:
Cod:
if (a[i-1][j]==0 && r[i-1][j]>pas+1 && i-1<=n && i-1>=1)


Titlul: 2 teste!?!
Scris de: Mihai Tiganus din Octombrie 23, 2008, 12:35:47
 ](*,) nimic mie nu-mi dau 2 teste...4 si 5...am inteles partea cu coloana minima si linia minima(sau cel putin nu cred ca e de la ea)...some help please :'(


Titlul: Răspuns: 496 Rj
Scris de: Pripoae Teodor Anton din Octombrie 23, 2008, 15:41:52
Problema a fost data la OJI 2004... Ia testele de acolo si vezi  :)

Spor


Titlul: Răspuns: 496 Rj
Scris de: Mihai Tiganus din Octombrie 24, 2008, 15:56:42
Am rezolvat problema, era de la citire...multumesc! :D


Titlul: Răspuns: 496 Rj
Scris de: zloteanu adrian nichita din Iulie 10, 2009, 15:25:35
cum fac sa citesc matricea cu tot cu spatii
eu asa fac:
Cod:
for(i=1;i<=n;i++)
  for(j=1;j<=m;j++)
   citeste>>a[i][j];


Titlul: Răspuns: 496 Rj
Scris de: Emanuel Cinca din Iulie 10, 2009, 17:25:18
Cod:
void read()
{ int i,j;char aux[102];
fin>>n>>m;
for(i=1;i<=n;i++)
{       fin.get();
fin.get(aux,101);
for(j=0;j<m;j++)
{ a[i][j+1]=aux[j];
if(aux[j]=='R')
{ tr[i][j+1]=1;
}
if(aux[j]=='J')
{ tj[i][j+1]=1;
}
}
}
}

Citesc dimensiunile matricii, citesc o linie, iar apoi fiecare linie o bag intr-o matrice char si imi marchez de unde porneste Romeo, respectiv Julieta. Citind o linie in char, iti citeste cu tot cu spatii. Bafta!


Titlul: Răspuns: 496 Rj
Scris de: Udrescu Cristian din Iulie 17, 2009, 23:05:16
problema e destul de simpla...am luat 100 :winner1:
hint:.declarati matricea de cel putin 150][150


Titlul: Răspuns: 496 Rj
Scris de: Iordache Albert din August 02, 2009, 22:55:49
Pe testul urmator, unde s-ar intalni?
Cod:
4 2
R
 
 
 J


Titlul: Răspuns: 496 Rj
Scris de: Maria Stanciu din August 03, 2009, 08:13:01
S-ar intalni in (2,2) dupa tmin = 2. Mai exista o solutie cu tmin = 2 si anume (3,1), dar pozitia (2,2) este minima.


Titlul: Răspuns: 496 Rj
Scris de: Iordache Albert din August 04, 2009, 14:55:45
De ce nu in (2,1)?

Sa reformulez atunci.

Cod:
1 4
R  J
Unde se intalnesc?

Cod:
1 3
R J
Aici stiu unde pentru ca exista un mijloc, (1,2). Cand se considera ca se intalnesc, daca nu exista mijlocul?


Titlul: Răspuns: 496 Rj
Scris de: Mihai Calancea din August 04, 2009, 20:54:52
De ce nu in (2,1)?

Sa reformulez atunci.

Cod:
1 4
R  J
Unde se intalnesc?

Cod:
1 3
R J
Aici stiu unde pentru ca exista un mijloc, (1,2). Cand se considera ca se intalnesc, daca nu exista mijlocul?

Citat
Pentru datele de test exista intotdeauna solutie.

Cred ca restrictia respectiva se refera si la chestii de genu asta  :-k


Titlul: Răspuns: 496 Rj
Scris de: Iordache Albert din August 04, 2009, 21:47:56
De ce nu in (2,1)?

Sa reformulez atunci.

Cod:
1 4
R  J
Unde se intalnesc?

Cod:
1 3
R J
Aici stiu unde pentru ca exista un mijloc, (1,2). Cand se considera ca se intalnesc, daca nu exista mijlocul?

Citat
Pentru datele de test exista intotdeauna solutie.

Cred ca restrictia respectiva se refera si la chestii de genu asta  :-k

Ai avut dreptate. :) Am ignorat cazul ala si mi-a dat 100.


Titlul: Răspuns: 496 Rj
Scris de: Posea Elena din Decembrie 28, 2009, 11:07:29
am incercat si eu problema asta....nu iau nici un test  (nu cred sa am probleme la citire). Am testat si eu programul cu datele de la oji...a mers; nu am nici o idee ce ar putea sa nu merga...aici e sura: http://infoarena.ro/job_detail/378172?action=view-source (http://infoarena.ro/job_detail/378172?action=view-source)
Lucrez cu doua cozi si la fiecare pas expandez toata generatia curenta. La fiecare expandare, verific daca se intalnesc.
Daca are cineva vreo idee, chiar ar fi bine venita  :?

Nu mai conteaza...a mers. Daca foloseste cineva ceva gen printf("%d\n",f());, mai bine face asa: a=f(); printf("%d\n",a);

[editat de moderator] nu mai posta consecutiv; editeaza-ti mesajele anterioare


Titlul: Răspuns: 496 Rj
Scris de: Sima Cotizo din Decembrie 28, 2009, 13:16:35
Ma indoiesc ca de la printf e. Din cate mi-am aruncat ochii pe ultimele tale 2 surse, ai un "ok" in plus intr-o functie; daca nu ma insel, in varianta asta (http://infoarena.ro/job_detail/378172?action=view-source) opreai un BFS inainte sa se termine printr-un return (nu garantez insa ca ti-am citit sursa cu suficienta rabdare).


Titlul: Răspuns: 496 Rj
Scris de: Posea Elena din Decembrie 28, 2009, 14:13:45
Da, am reparat si asta. Oricum, gresala aia ducea la faptul ca sol returnata nu era si minima (ca linie si coloana). Mi-am testat programul sub linux si afisa mereu bine generatia, iar 0 0 la coordonate...


Titlul: Răspuns: 496 Rj
Scris de: Pripoae Teodor Anton din Decembrie 28, 2009, 22:26:34
Daca ai:
Cod:
printf("%d %d\n", foo(), bar());
Intai o sa apeleze bar(), si apoi foo(). Nu stiu de ce.


Titlul: Răspuns: 496 Rj
Scris de: alexandru din Decembrie 29, 2009, 08:37:05
Intai o sa apeleze bar(), si apoi foo(). Nu stiu de ce.
Fiecare parametru este pus pe stiva si apoi se evalueaza. Acelasi lucru se intampla si la cout.


Titlul: Răspuns: 496 Rj
Scris de: Posea Elena din Decembrie 29, 2009, 09:59:46
Multumesc pentru raspunsuri. Nu stiam chestia cu stiva. Nici prin cap nu mi-a trecut ca ar putea sa fie de-acolo!   :D


Titlul: Răspuns: 496 Rj
Scris de: Andrei Grigorean din Decembrie 29, 2009, 13:52:50
Daca ai:
Cod:
printf("%d %d\n", foo(), bar());
Intai o sa apeleze bar(), si apoi foo(). Nu stiu de ce.

Depinde de compilator. Nu este specificata de standard ordinea de apelare.   


Titlul: Răspuns: 496 Rj
Scris de: alexandru din Decembrie 29, 2009, 17:02:00
Depinde de compilator.
Nu cred  :-k Pana la urma prinf, la fel ca si cout sunt niste functii. Fiecare apel al unui subprogram este memorat pe stiva alaturi de paramentrii trimisi si astfel apare aceasta chestie  :).


Titlul: Răspuns: 496 Rj
Scris de: Andrei Grigorean din Decembrie 30, 2009, 01:20:17
Cum adica nu crezi? Stiu foarte bine ca nu este specificat in standard ordinea de evaluare a parametrilor. Ce nu e de crezut?

Intamplator, am o versiune de Visual C++ unde se apeleaza mai intai foo() si apoi bar() din exemplul lui Toni.


Titlul: Răspuns: 496 Rj
Scris de: Savin Tiberiu din Decembrie 30, 2009, 09:42:35
Depinde de compilator.
Nu cred  :-k Pana la urma prinf, la fel ca si cout sunt niste functii. Fiecare apel al unui subprogram este memorat pe stiva alaturi de paramentrii trimisi si astfel apare aceasta chestie  :).

Desi nu stiu daca are vreo relevanta in cazul am zis totusi ca ar fi bine sa te corectez. Cout nu este o functie, este un obiect.


Titlul: Răspuns: 496 Rj
Scris de: alexandru din Decembrie 31, 2009, 22:59:02
Cum adica nu crezi? Stiu foarte bine ca nu este specificat in standard ordinea de evaluare a parametrilor. Ce nu e de crezut?
Scuze, n-am vrut sa sune asa. Te cred cand zici ca nu e specificat in standard . Eu ma refeream ca ideea de implemenatre sa fie foarte asemanatoare la fiecare compilator ( pe toate compilatoarele pe care am incercat se intampla  aceasta chestie :) si de aici am tras concluzia aceasta pripita :( ).

An nou fericit  :D


Titlul: Răspuns: 496 Rj
Scris de: Anghelescu Ana-Maria din Martie 05, 2010, 14:51:51
salut!

am si eu o problema la aceasta problema cu Romeo si Julieta...  ](*,) Nu inteleg de ce coada mea nu e buna...
Cod:
void vecin (int ii, int jj, int c[][105])
{
    li=ls=1;
    coada[1][0]=ii; coada[1][1] = jj; c[ii][jj] = 1;
    while (!c[xb][yb])
    {
i=coada[li][0];
j=coada[li][1];
for ( k=0; k<8; k++ )
if ( a[i+dx[k]][j+dy[k]]==0 && a[i+dx[k]][j+dy[k]]!=-1 )
{
a[i+dx[k]][j+dy[k]]=1+a[i][j];
ls++;
coada[ls][0]=i+dx[k];
coada[ls][1]=j+dy[k];
}
li++;
    }
}

Daca ma poate ajuta cineva, va multumesc anticipat... Sunt incepatoare, cu chef de munca...   :weightlift:  :fighting: Dati-mi niste sugestii... Va rog!!
Multumesc


Titlul: Răspuns: 496 Rj
Scris de: Cosmin-Mihai Tutunaru din Martie 05, 2010, 15:16:41
Cred că problema apare din următorul motiv:
Tu nu verifici dacă o poziție se află deja în coadă. DIn această cauză, este posibil ca multe poziții să se afle de mai multe ori în coadă, și astfel să depășeșți memoria alocată pentru coadă.
Ca să rezolvi acest impediment, mai poți construi o matrice de tip char viz[ i ][ j ]= 1, dacă poziția (i,j) este în coadă, respectiv 0 dacă nu se află în coadă.
Și astfel, când adaugi o poziție în coadă, mai întâi verifici dacă nu cumva se află deja în coadă. Dacă se află, nu o mai adaugi. Dacă nu se află, atunci o adaugi și marchezi și în matricea viz. De asemenea, să nu uiți atunci când scoți o poziție din coadă, să marchezi acest fapt și în matrice.

LE: Cred că am scris aiureli mai sus. Tu faci o parcurgere în lățime. E bună condiția. Acum am observat că altceva e geșit. Tu ai  while (!c[xb][yb]), iar în interiorul while-ului nu modifici deloc matricea c[][]. Deci înseamnă că îți intră în ciclu.

Spor la treabă în continuare.


Titlul: Răspuns: 496 Rj
Scris de: Spatariu Mihai-Constantin din Noiembrie 25, 2010, 21:44:49
dc pt
Cod:
5 8
XXR  XXX
 X  X  X
J X X  X
      XX
XXX XXXX

raspunsu e 4 4 4
cand poate fi 3 3 2
dc e mai bun 4 4 4?
si romeo prefera sa ocoleasca timp de 3 unitati in loc sa astepte 1?daca da e cam  :fighting: romeo asta

 Editat de admin: Foloseste tagul "code" cand vrei sa postezi cod.


Titlul: Răspuns: 496 Rj
Scris de: Mihai Calancea din Noiembrie 25, 2010, 22:19:21
"Cum lui Romeo nu ii place sa astepte si nici sa se lase asteptat, ei au hotarat ca trebuie sa aleaga un punct de intalnire in care atat Romeo, cat si Julieta, sa poata ajunge in acelasi timp, plecand de acasa".



Titlul: Răspuns: 496 Rj
Scris de: Spatariu Mihai-Constantin din Noiembrie 26, 2010, 08:19:43
da bun dar daca romeo merge (1,3)(2,4)(2,3)si julieta (3,1)(3,2)(2,3)romeo nu asteata si solutia are timpul cu 1 mai mic decat cea de la oji si e si mai sus pe line si pe coloana


Titlul: Răspuns: 496 Rj
Scris de: Simoiu Robert din Noiembrie 26, 2010, 14:50:20
Uite aici 2 matrice care reprezinta drumurile facute cu LEE ale celor 2 ( se incepe de la 0 ), si cu bold un drum posibil pentru cei 2 :
Citat
0 0 3 3 4 0 0 0
1 0 2 3 0 5 6 0
0 1 0 3 0 5 6 0
1 1 2 3 4 5 0 0
0 0 0 3 0 0 0 0

0 0 0 1 2 0 0 0
3 0 1 1 0 3 4 0
3 2 0 2 0 4 4 0
3 3 3 3 3 4 0 0
0 0 0 4 0 0 0 0
Si inca ceva, drumul dat de tine lui Romeo e gresit, daca te uiti pe graficele mele si chiar pe datele de intrare, in 2,3 si 2,4 Romeo ajunge din prima, adica se poate duce de unde e el initial fie in 2,3 fie in 2,4 fie in .... ( mai sunt cateva variante ). Deci nu se poate asa ceva ....


Titlul: Răspuns: 496 Rj
Scris de: Spatariu Mihai-Constantin din Noiembrie 27, 2010, 11:31:13
Si inca ceva, drumul dat de tine lui Romeo e gresit, daca te uiti pe graficele mele si chiar pe datele de intrare, in 2,3 si 2,4 Romeo ajunge din prima, adica se poate duce de unde e el initial fie in 2,3 fie in 2,4 fie in .... ( mai sunt cateva variante ). Deci nu se poate asa ceva ....

De ce sa fie gresit ca in problema nu este precizat ca romeo sau julieta  daca poate ajunge intr-un punct pe o cale mai rapida o alege pe aceea


Titlul: Răspuns: 496 Rj
Scris de: Mihai Calancea din Noiembrie 27, 2010, 12:23:09
"Fiindca la intalniri amandoi vin intr-un suflet, ei estimeaza timpul necesar pentru a ajunge la intalnire prin numarul de elemente din matrice care constituie drumul cel mai scurt de acasa pana la punctul de intalnire"


Titlul: Răspuns: 496 Rj
Scris de: Spatariu Mihai-Constantin din Noiembrie 27, 2010, 14:41:17
in fine ....ms de raspunsuri...dar tot mai aproape e pe unde am zis :D


Titlul: Răspuns: 496 Rj
Scris de: Vasilut Lucian din Martie 05, 2011, 00:17:03
imi poate sugera si mie cineva cum se poate face citirea> :D


Titlul: Răspuns: 496 Rj
Scris de: Simoiu Robert din Martie 05, 2011, 00:20:25
Cod:
void read_data () {
    scanf ( "%d %d\n", &N, &M ) ;

    for (int i = 1 ; i <= N; ++i) {
        fgets ( S + 1, MAX, stdin ) ;

        for (int j = 1; j <= M; ++j) {
            if ( S[j] == 'X' ) {
                V[i][j] = 1;
            } else if ( S[j] == 'J' ) {
                J = make_pair ( i, j ) ;
            } else if ( S[j] == 'R' ) {
                R = make_pair ( i, j ) ;
            }
        }
    }
}
Aceasta este citirea mea, unde J si R sunt pair < int, int > .


Titlul: Răspuns: 496 Rj
Scris de: George Marcus din Martie 06, 2011, 20:35:57
Ai toate testele la sectiunea "Downloads". Cauta OJI 2004.


Titlul: Răspuns: 496 Rj
Scris de: Vlad Schnakovszki din Martie 07, 2011, 12:43:13
Cu evaluatorul de la OJI iau 45 de puncte din 50. Cand pun sursa pe site primesc "Killed by signal 6(SIGABRT)." pe toate testele. Ma chinui deja de 3 ore sa gasesc ce nu-i convine ](*,). Am incercat si cu Short int si tot aia primesc.

Fac o bere daca gaseste cineva ce nu-i bine :read:

Sursa e aici: http://infoarena.ro/job_detail/548318?action=view-source (http://infoarena.ro/job_detail/548318?action=view-source)


Titlul: Răspuns: 496 Rj
Scris de: Simoiu Robert din Martie 07, 2011, 16:26:57
Asta, e, ai 50 pct din 100, cu 1 incorect. Greseala ta este ca inchizi de 2 ori fisierul de intrare ( fclose ( f ) ), odata in citeste si odata in tipareste. Eu am lasat doar in tipareste, si am mai modificat citirea, am citit totul ca pe un sir, pentru ca am vazut ca nu citea prea bine ( cel putin la mine pe PC ) , si am pus in loc de faza cu break un return, care te scapa de sw ala, adica return inseamna ca iasa direct din procedura. http://infoarena.ro/job_detail/548571


Titlul: Răspuns: 496 Rj
Scris de: Vlad Schnakovszki din Martie 08, 2011, 08:16:00
Mersi mult Robert! Nici macar nu m-am uitat dupa asa ceva ](*,).


Titlul: Răspuns: 496 Rj
Scris de: Lexum Delus din Martie 08, 2011, 09:47:02
Nu-mi dau seama ce am gresit.. pic un singur test din cele zece.  :readthis:
V-as fi recunoscator daca v-ati uita pe solutia mea   \:D/
http://infoarena.ro/job_detail/547909?action=view-source

Testul pe care il pic este testul 3 dupa cum se poate vedea aici:
http://infoarena.ro/job_detail/547909 (http://infoarena.ro/job_detail/547909)
Am incercat deja toate celelalte teste si sunt OK.
Ma gandeam ca poate o fi vreo greseala in implementare.Cineva sa ma ajute va rog  :?


Titlul: Răspuns: 496 Rj
Scris de: Simoiu Robert din Martie 08, 2011, 14:21:53
Ia testul de la OJI 2004 care nu iti merge ( sau daca iti merge inseamna ca-i altul, incearca-le pe toate ).


Titlul: Răspuns: 496 Rj
Scris de: FMI Trifan Mircea Mihai din Aprilie 10, 2011, 00:06:26
Nu stiu cum ati facut voi... Dar eu am picat cate 2 teste diferite trimitand surse care verificau si coloana sa fie minima; :readthis:
Fara restrictia asta am luat 100. Ciudat.


Titlul: Răspuns: 496 Rj
Scris de: Vidrean Mihai din August 22, 2011, 16:16:00
Cum pot sa fac o citire cu #include<cstdio> ca sami ia corect toate spatiile?? :-k
Eu am incercat asa,dar nu face ceva corect :annoyed:
Cod:
char c[150];
FILE * pFile;
pFile=fopen("rj.in","r");
fscanf(pFile,"%d%d",&n,&m);
for(i=0;i<n;i++){
fgets (c, m+1, pFile);
for(j=0;j<m;j++){
if(c[j]==' ')mat[i][j]=0;
if(c[j]=='X')mat[i][j]=-1;
if(c[j]=='R'){xr=i;yr=j;mat[i][j]=1;}
if(c[j]=='J'){xj=i;yj=j;mat[i][j]=1;}
}
}


Titlul: Răspuns: 496 Rj
Scris de: cont cu nume gresit sau fals din August 22, 2011, 16:25:01
poti citi cu fgets:
Cod:
fgets(ch,nr,file);
fgets iti citeste nr caractere sau pana la sfarsitul liniei din fisierul file in vectorul de char ch
http://www.cplusplus.com/reference/clibrary/cstdio/fgets/


Titlul: Răspuns: 496 Rj
Scris de: Vidrean Mihai din August 22, 2011, 16:52:48
Si in legatura cu rezolvarea problemei ar fi o idee buna sa incep un Lee din amandoua punctele si sa vad unde se intalensc??sau cum?? :D


Titlul: Răspuns: 496 Rj
Scris de: Simoiu Robert din August 22, 2011, 16:54:13
@Magnus, vezi ca el citeste cu fgets
@Mitza444, incearca in loc de m + 1 sa pui MAX, adica 150
[LE] Am vazut mesajul tau, da asta este solutia, 2 Lee-uri si afisezi punctul de intersectie. (pasii pana acolo)


Titlul: Răspuns: 496 Rj
Scris de: Vidrean Mihai din August 22, 2011, 17:08:16
Problema e ca cred ca manca o linie pentru ca daca bag codul acesta:
Cod:
#include<cstdio>
using namespace std;
short n,m,i,j,mat[150][150],xr,yr,xj,yj;
char c[150];
int main(){
FILE * pFile;
pFile=fopen("rj.in","r");
fscanf(pFile,"%d%d",&n,&m);
for(i=0;i<n;i++){
fgets (c,150,pFile);
for(j=0;j<m;j++){
if(c[j]==' ')mat[i][j]=0;
if(c[j]=='X')mat[i][j]=-1;
if(c[j]=='R'){xr=i;yr=j;mat[i][j]=1;}
if(c[j]=='J'){xj=i;yj=j;mat[i][j]=1;}
}
}
pFile=fopen("rj.out","w");
for(i=0;i<n;i++){
for(j=0;j<m;j++){
fprintf(pFile,"%d",mat[i][j]);
fprintf(pFile," ");
}
fprintf(pFile,"\n");
}
return 0;
}
pe exemplu imi da:
Cod:
0 0 0 0 0 
1 0 -1 -1 0
-1 0 -1 0 -1
-1 0 -1 -1 -1
-1 0 -1 0 -1
si nu mai pune si linia cu Julieta iar prima linie o pune 0 0 0 0 0


Titlul: Răspuns: 496 Rj
Scris de: cont cu nume gresit sau fals din August 22, 2011, 17:09:58
imi cer scuze.
nu m-am uitat sa vad daca problema are sursa libera, iar in postul initial nu era citirea.

uite unde poti avea probleme la citire.
dupa cum ti-am zis fgets se opreste daca da de un '\n'
si atunci e mai bine sa citesti asa
Cod:
char c[150];
FILE * pFile;
pFile=fopen("rj.in","r");
fscanf(pFile,"%d%d\n",&n,&m);
for(i=0;i<n;i++){
fgets (c, m+1, pFile);
                      aux=strlen(c)-1;//-1 este pt ca in sirul de caractere se citeste si '\n'
for(j=0;j<aux;j++){
if(c[j]==' ')mat[i][j]=0;
if(c[j]=='X')mat[i][j]=-1;
if(c[j]=='R'){xr=i;yr=j;mat[i][j]=1;}
if(c[j]=='J'){xj=i;yj=j;mat[i][j]=1;}
}
            for (j=aux;j<m;j++)
                         mat[i][j]=0;
}
l.e.: vezi ca trebuie sa citesti asa n si m:
Cod:
fscanf(pFile,"%d%d\n",&n,&m);
pt ca ramane un '\n' necitit


Titlul: Răspuns: 496 Rj
Scris de: Vidrean Mihai din August 22, 2011, 17:27:57
Mersi merge daca pun \n dupa ce citesc n si m


Titlul: Răspuns: 496 Rj
Scris de: Nedelcu Rares din Octombrie 09, 2011, 20:35:24
Cred ca fisierele de intrare au o problema...am dat copy+paste la exemplu si in loc sa afiseze
5 5
R XX
X X X
X XXX
X X X
X J X
imi arata(desigur, in editor, la fisierul de intrare)
5 5
R XX
 X X X
 X XXX
 X X X
 X J X
..adica un spatiu in plus incepand cu a 2a linie...si cred ca problema asta e si pe campion


Titlul: Răspuns: 496 Rj
Scris de: Gafton Paul din Iunie 22, 2012, 16:29:53
Problema cred ca e de la faptul ca la teste pe iesire e tmin y x, si nu tmin x y. Cand am afisat tmiin x y am luat 0, si cu tmin y x am luat 100.


Titlul: Răspuns: 496 Rj
Scris de: CHIRILA ADRIAN din Decembrie 16, 2013, 19:42:08
Iau 0 puncte pe ultimul test.Citirea o fac cu getline.Exista ceva special la el?sau citirea nu e buna?


Titlul: Răspuns: 496 Rj
Scris de: Dragulin Silviu din Septembrie 29, 2014, 22:01:34
buna,
nu stiu sa citesc matricea de caractere  ](*,)  :'( ,nu stiu sa folosesc <cstudio>  :fighting: ...imi poate arata cineva o metoda cu <fstream>? :D


Titlul: Răspuns: 496 Rj
Scris de: AndreiCDG din Septembrie 27, 2015, 14:01:32
Am si eu o intrebare: cum as citi caracterul de spatiu ca acela din exemplu pentru loc accesibil?


Titlul: Răspuns: 496 Rj
Scris de: theprdv din Septembrie 27, 2015, 16:25:39
Cod:
if (A[i][j] == 32)
    spatiu gasit

si citirea o faci asa:
Cod:
for (int i = 0; i < N; ++i)
     gets(A[i]);


Titlul: Răspuns: 496 Rj
Scris de: alexandru chirila din Ianuarie 04, 2017, 19:17:15
La aceasta probema sa aveti grija mare la citire   [-X
- o sa aveti asa ceva ](*,) daca ultimaul caracter de pe o linie este spatiu pt ca acesta se inlocuieste cu caracterul sfarsit de linie la salvarea fisierului
- ca sa fie memorat spatiul folositi variante ale functiei f.get()
EROARE INTRE ORDINEA DATELOR DE IESIRE DIN ENUNT SI REZULTATELE TESTELOR-afisati raspunsurile in ordinea : tmin,x,y . :winner1:


Titlul: Răspuns: 496 Rj
Scris de: Iancu Vlad din Septembrie 04, 2017, 19:28:26
lee


Titlul: Răspuns: 496 Rj
Scris de: Galatanu Bogdan Ioan din Aprilie 23, 2019, 21:44:39
Imi pica doar la testul 2! Mai incerc  :evil:


Titlul: PICA LA TESTUL 2 ! (Doar mie)
Scris de: Galatanu Bogdan Ioan din Aprilie 23, 2019, 21:45:22
Imi pica doar la testul 2! Mai incerc  :evil: