u-92
Vizitator
|
 |
« Răspunde #25 : Noiembrie 26, 2005, 10:34:09 » |
|
 tot 70.. WA pe 1,2 si 5 
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #26 : Noiembrie 28, 2005, 14:03:30 » |
|
In primu rand tu iei WA nu TLE, dar am "masurat" citirea ta pe un Celeron la 2.40 GHz si 256 MB RAM si dureaza, pentru testul, maxim 0.14. Mai testeaza-ti solutia. Uite, incearca p'astea : Pentru primu test raspunsul este 0, iar pentru al doilea raspunsul este 1. Good luck. 
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
u-92
Vizitator
|
 |
« Răspunde #27 : Noiembrie 28, 2005, 16:09:26 » |
|
pe primul imi da 0, pe al doilea 1.. si n-am zis ca iau TLE, insa cu prima citire caracter cu caracter luam 30 si daca citeam tot sirul luam 70 de asta am zis eu ca mi se pare dubios
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #28 : Noiembrie 29, 2005, 10:41:05 » |
|
 Asta chiar e dubios rau... eu am incercat sa citesc caracter cu caracter si am luat 100. Daca vrei ( doar daca nu te deranjeaza), da-mi solutia ta pe mail si ma uit peste ea ( [email protected]).
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
u-92
Vizitator
|
 |
« Răspunde #29 : Noiembrie 29, 2005, 17:04:14 » |
|
nu ma deranjeaza deloc, o s-o pun aici poate mai are cineva de postat o idee [ am scos sursa ... ]
daca scot alea din comentariu de la citire, iau 20 (am vazut acum).. totusi cele doua chestii nu sunt echivalente?
mersi.
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #30 : Noiembrie 29, 2005, 23:28:16 » |
|
in functia bf, in loc de : c[++sf].x = i + dx[k]; c[sf].y = j + dy[k]; pune c[sf].x = i + dx[k]; c[sf++].y = j + dy[k]; prima daca cand intra in "if", variabila "sf" este 1. tu mai introduci in coada (c[1]) pozitia (0, 0) ca vecin al lui (i, j) si acest lucru nu e intodeanuna adevarat. uite testu pe care te-am prins  : 6 5 ...I. ..... ...O. ..*** ...D. tie iti da 3, iar corect este 6. acum iei 100  si ai grija pe viitor, ca asa ceva te poate costa mult mai mult de 30 de puncte.
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
u-92
Vizitator
|
 |
« Răspunde #31 : Noiembrie 29, 2005, 23:33:45 » |
|
ca sa vezi ce greseam.. bug`urile astea.. mersi mah, sa traiesti 
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #32 : Noiembrie 29, 2005, 23:36:50 » |
|
n-ai pentru ce  tu esti Astronomy ?
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
u-92
Vizitator
|
 |
« Răspunde #33 : Noiembrie 29, 2005, 23:39:37 » |
|
na ca mi s-a dezvaluit identitatea 
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #34 : Noiembrie 29, 2005, 23:40:34 » |
|
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•alex_prg
Strain
Karma: -5
Deconectat
Mesaje: 21
|
 |
« Răspunde #35 : Aprilie 03, 2006, 22:04:54 » |
|
nu ma prind de problema .... ma gandesc ca trebuie construit un graf dar nam cum sa iau R*C noduri nu ? ... ma ajuta cineva ?
|
|
|
Memorat
|
reality is just an illusion created by the lack of alcohol
|
|
|
•Coty
|
 |
« Răspunde #36 : Iulie 29, 2006, 17:33:44 » |
|
OK ... ignorand multe WA ca stiu ca nu prea mi-am dat interesu sa o fac din prima bine... stit de la ce pot lua SIGABRT??? ( abort parca da doar userul daca vrea  altfel e sigint)
|
|
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #37 : Iulie 29, 2006, 17:54:25 » |
|
OK ... ignorand multe WA ca stiu ca nu prea mi-am dat interesu sa o fac din prima bine... stit de la ce pot lua SIGABRT??? ( abort parca da doar userul daca vrea  altfel e sigint) http://infoarena.devnet.ro/forum/index.php/topic,846.0.htmlEu am depasit memoria. Cred ca si tu ai facut acelasi lucru.
|
|
« Ultima modificare: Iulie 29, 2006, 17:57:17 de către Marius »
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•azotlichid
|
 |
« Răspunde #38 : Iulie 30, 2006, 20:51:07 » |
|
Eu primeam SIGABRT cand accesam elemente negative ale unui vector si citeam/scriam in afara zonei de memorie alocata programului.
|
|
|
Memorat
|
|
|
|
•Coty
|
 |
« Răspunde #39 : Iulie 31, 2006, 08:23:51 » |
|
OK ... ignorand multe WA ca stiu ca nu prea mi-am dat interesu sa o fac din prima bine... stit de la ce pot lua SIGABRT??? ( abort parca da doar userul daca vrea  altfel e sigint) http://infoarena.devnet.ro/forum/index.php/topic,846.0.htmlEu am depasit memoria. Cred ca si tu ai facut acelasi lucru. am uitat de pagina asta  sorry  struct point { long x, y, v; };
long R, C; char A[MAX][MAX]; long V[MAX][MAX]; long B[MAX][MAX];
point mv[4] = {{-1,0},{1,0},{0,1},{0,-1}}; // vector of moves queue <point> D; point I, O; long answer=0;
singura cu dimensiune variabila este coada... deci din pricina ei sa nu imi intre???
|
|
|
Memorat
|
|
|
|
•cos_min
|
 |
« Răspunde #40 : Iulie 31, 2006, 08:40:55 » |
|
nush daca ii de la asta ... da intra si in int nu trebuie folosit long
|
|
|
Memorat
|
vid...
|
|
|
•Coty
|
 |
« Răspunde #41 : Iulie 31, 2006, 09:17:57 » |
|
din cate stiu pe compilatoarele de 32 de biti, int == long... asa cum pe alea de 64 int == long long, nu?
|
|
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #42 : Iulie 31, 2006, 14:47:41 » |
|
din cate stiu pe compilatoarele de 32 de biti, int == long... asa cum pe alea de 64 int == long long, nu?
Da. Eu folosesc Visual C++ si are compilator pe 32 de biti iar int == long. Cred ca e valabil si pentru cel de 64. am uitat de pagina asta  sorry  Mi-a fost lene sa explic din nou si ti-am dat un link.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•Robytzza
|
 |
« Răspunde #43 : Februarie 11, 2008, 21:42:17 » |
|
care e faza cu ultimul test..am vazut ca este cu -1 ..insa nu vad ce gresesc..am pus conditia daca nu poate sa ajunga la final sa afiseze -1 ..si tot iau incorect  ( Gata m rezolvat 100 <:-P ,ms Marius 
|
|
« Ultima modificare: Februarie 11, 2008, 23:06:21 de către Ionescu Robert Marius »
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #44 : Aprilie 08, 2008, 10:38:56 » |
|
Flacarile dragonilor pot trece prin zid? Adica daca am ceva de genu Distana pana la celula libera e 2 sau e data de distanta pana la un alt dragon? L.E. : mi-am dat seama ca dragonii nu-s destul de puternici ca sa trimita flacari prin zid 
|
|
« Ultima modificare: Aprilie 08, 2008, 11:00:54 de către Andrei Misarca »
|
Memorat
|
|
|
|
•stocarul
|
 |
« Răspunde #45 : Aprilie 14, 2008, 17:04:41 » |
|
Am si eu o problema cu testele 7 si 9. La 7 primesc Wrong answer!, iar la 9 Killed by signal 11(SIGSEGV). As vrea si eu cele doua teste daca se poate  stocarul [at] yahoo.com Multumesc:) Am pus aici si sursa: #include <fstream> using namespace std; fstream in,out; const int dx[] = {0,0,1,-1}; const int dy[] = {1,-1,0,0}; long r,c; long i,j,k; long m[1001][1001]; long b[1001][1001]; long di[1000001],dj[1000001],ds[1000001]; long d=0,t; long x,y,x1,y1; long l,h,ma; long suma; char v[1001];
int nr_max(long i,long j) { long x=0; x=m[i][j]; for(int k=0;k<4;k++) if(0<i+dx[k]<=r && 0<j+dy[k]<=c && m[i+dx[k]][j+dy[k]]>x) x=m[i+dx[k]][j+dy[k]]; return x; } int nr_min(long x,long y) { if(x>y) return y; else return x; } void umple(long i,long j,long x) { for(int k=0;k<4;k++) if(0<i+dx[k]<=r && 0<j+dy[k]<=c && m[i+dx[k]][j+dy[k]]>=x && b[i+dx[k]][j+dy[k]]==0) { b[i+dx[k]][j+dy[k]] = 1; umple(i+dx[k],j+dy[k],x); } } void goleste() { long i,j; for(i=1;i<=r;i++) for(j=1;j<=c;j++) b[i][j]=0; }
int main() { in.open("barbar.in",ios::in); out.open("barbar.out",ios::out); in>>r>>c; in.get(); for(i=1;i<=r;i++) { in.getline(v,c+2,'\n'); for(j=0;j<c;j++) { if(v[j]=='.') m[i][j+1]=3000000; else if(v[j]=='*') m[i][j+1]=-1; else if(v[j]=='D') { m[i][j+1]=0; d++; di[d]=i; dj[d]=j+1; } else if(v[j]=='I') { m[i][j+1]=3000000; x=i; y=j+1; } else { m[i][j+1]=3000000; x1=i; y1=j+1; } } } in.close(); t=d; for(i=1;i<=t;i++) { suma = m[di[i]][dj[i]]+1; for(j=0;j<4;j++) if(0<di[i]+dx[j]<=r && 0<dj[i]+dy[j]<=c && m[di[i]+dx[j]][dj[i]+dy[j]]>suma) { m[di[i]+dx[j]][dj[i]+dy[j]] = suma; t++; di[t]=di[i]+dx[j]; dj[t]=dj[i]+dy[j]; } }
h=nr_min(nr_max(x,y),nr_max(x1,y1)); k=-1; l=0; while(l<=h) { if(l>0 || h>0) ma=(l+h)/2; else ma=0; umple(x,y,ma); if(b[x1][y1]==1) { k=ma; l=ma+1; } else h=ma-1; goleste(); } out<<k<<endl; out.close(); return 0; }
|
|
« Ultima modificare: Aprilie 16, 2008, 18:04:43 de către Tutunaru Cosmin Mihai »
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #46 : Aprilie 14, 2008, 17:22:42 » |
|
In conditiile in care sursele nu se fac publice sansa sa le primesti e destul de mica  dar ai grija la program sa nu in vre-un ciclu infinit(o data am primit park Killed by signal 11 pt asta) L.E. : Nu am avut destula rabdare sa urmaresc sursa, dar am un sfat: knd faci o parcurgere in latime(i se mai zice si algorimul lui lee), foloseste un sir de constante pentru directii(e mai usor de scris si de urmarit) const int dx[] = {-1, 1, 0, 0}, dy[] = { 0, 0, 1,-1}; Asa se declara, iar cand vrei sa vezi toti vecinii unui element faci for(int k=0; k<4; k++) { ivec = iact + dx[k]; jvec = jact + dy[k]; ... } unde iact si jact sunt indicii elementului curent(caruia vrei sai afli vecinii), iar ivec si jvec sunt indicii elementelor vecine
|
|
« Ultima modificare: Aprilie 14, 2008, 18:23:25 de către Andrei Misarca »
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #47 : Aprilie 14, 2008, 18:49:24 » |
|
[...] L.E. : Nu am avut destula rabdare sa urmaresc sursa, dar am un sfat: knd faci o parcurgere in latime(i se mai zice si algorimul lui lee), foloseste un sir de constante pentru directii(e mai usor de scris si de urmarit) [...]
nu se numeste algoritmul lui Lee (cum apare gresit in unele manuale de informatica), ci Breadth-first search  .
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•Mishu91
|
 |
« Răspunde #48 : Aprilie 14, 2008, 18:53:47 » |
|
Pai am scris k i se mai zice algoritmul lui Lee (in mod gresit, in manualele de info), n-am zis k asa se si numeste 
|
|
|
Memorat
|
|
|
|
•stocarul
|
 |
« Răspunde #49 : Aprilie 14, 2008, 19:05:56 » |
|
In conditiile in care sursele nu se fac publice sansa sa le primesti e destul de mica  dar ai grija la program sa nu in vre-un ciclu infinit(o data am primit park Killed by signal 11 pt asta) L.E. : Nu am avut destula rabdare sa urmaresc sursa, dar am un sfat: knd faci o parcurgere in latime(i se mai zice si algorimul lui lee), foloseste un sir de constante pentru directii(e mai usor de scris si de urmarit) const int dx[] = {-1, 1, 0, 0}, dy[] = { 0, 0, 1,-1}; Asa se declara, iar cand vrei sa vezi toti vecinii unui element faci for(int k=0; k<4; k++) { ivec = iact + dx[k]; jvec = jact + dy[k]; ... } unde iact si jact sunt indicii elementului curent(caruia vrei sai afli vecinii), iar ivec si jvec sunt indicii elementelor vecine Multumesc mult pentru aceasta idee. Nu m-am gandit ca se poate scrie si asa, si intradevar e mult mai usor de scris algoritmul. Multumesc inca o data  p.s. Si totusi, de ce i-au doar 80 pct?
|
|
« Ultima modificare: Aprilie 20, 2008, 17:12:07 de către Tutunaru Cosmin Mihai »
|
Memorat
|
|
|
|
|