Afişează mesaje
|
Pagini: 1 ... 6 7 [8]
|
176
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 404 Lacuri
|
: Februarie 02, 2009, 17:05:18
|
Am si eu o intrebare... Aceasta problema are evaluator?.....sau doar compara cele doua fisiere? Imi da drum gresit la testul 5 (in rest totul merge perfect), si m-am uitat in testul 5 de la oni....si programul meu scoate un alt drum.....dar un drum corect!!!!!! http://infoarena.ro/job_detail/249897Nu iti afiseaza un drum corect, ci poate numai o bucata din el, primul nod afisat nu este (1, 1). Am luat testul 4 de la oni, care aici ar trebui sa fie 5, deoarece la oni sunt numerotate de la 0.. si programul meu scoate: 35 1 1 1 2 1 3 2 3 3 3 3 4 3 5 3 6 3 7 4 7 5 7 5 8 5 9 5 10 5 11 5 12 5 13 5 14 5 15 5 16 6 16 6 17 6 18 6 19 6 20 6 21 6 22 7 22 8 22 9 22 10 22 11 22 11 23 11 24 11 25 11 26 11 27 11 28 11 29 11 30 12 30 13 30 14 30 15 30 16 30 17 30 18 30 19 30 19 31 19 32 19 33 20 33 21 33 22 33 23 33 24 33 25 33 25 34 25 35 26 35 27 35 28 35 29 35 30 35 31 35 32 35 33 35 34 35 35 35 L.E.: Scz...era defapt testul 5 de la oni;))....am observat greseala...aveam matricea de tip char....am pus int...si acum iau 100
|
|
|
177
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 682 Iepuri2
|
: Februarie 01, 2009, 14:08:18
|
pai e o diferenta intre noi doi. tu ai pus sa fie exact 2 sefi. eu am pus mai mare ca 1. incearca... poate sunt 3,4,5,6,7,8,9... [sau poate sunt eu idiot. nu imi dau seama de ce nu merge.]
E bun codul lui Gabi. Daca gasesti ca are 2 sefi, intra in bucla direct. Deci oricum ar avea mai multi de 2, ar intra in bucla. Nu se poate ca un iepure sa aiba 2 sefi....pt ca atunci nu ar mai fi un arbore....ba mai mult....stiind k se dau pe n-1 linii relatiile dintre iepuri....vom avea un graf care nu e conex (si ar ramane cel putin un iepure singur fara sef...si fara fii)
|
|
|
180
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 485 Exp
|
: Ianuarie 28, 2009, 20:32:34
|
Compileaza cu C++, nu cu C. Tu folosesti in sursa chestii specifice C++, care nu exista in C. Nu inteleg de ce nu iti da eroare de compilare . Oricum, am trimis sursa ta cu extensia cpp si am luat 100 Multumesc..... Intradevar...am trimis la compilare pt c++ si iau 100 pct (offf....si cat timp am pierdut sa tot verific sursa crezand ca gandesc eu gresit ) Acum...as vrea sa stiu ce anume din aceasta sursa nu e compatibil cu C.....Eu obisnuisem in ultima vreme sa fac toate sursele in C.....si pana acum toate mi-au functionat cum trebuie....Si din pacate nu vad ce anume nu e compatibil cu c . I-as fi recunoscator celui care imi spune ce anume din sursa nu e compatibil cu C. Multumesc in ca o data. Compileaza cu C++, nu cu C. Tu folosesti in sursa chestii specifice C++, care nu exista in C. Nu inteleg de ce nu iti da eroare de compilare . Oricum, am trimis sursa ta cu extensia cpp si am luat 100 Am mai observat ca si sursa trimisa la compilare cu C se ruleaza... Puteti vedea in borderoul de evaluare timpii rulati pt fiecare test (care sunt identici cu cei care ii obtine sursa trimisa la compilare cu C++(ce obtine si punctaj maxim))......De ce totusi 0 pct? [edit] am imbinat 2 post-uri
|
|
|
181
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 485 Exp
|
: Ianuarie 21, 2009, 13:07:44
|
Am rezolvat si eu problema, insa iau 0 pct, desi pe teste de la oji iau 100 pct cu aceeasi sursa. Am folosit un vector de numere prime, la fiecare avand numarul de aparitii al acestuia in produsul x1*x2*...*xn Care ar putea fi problema? Link catre detalii compilare: http://infoarena.ro/job_detail/230175Sursa mea este urmatoarea: Scz ca postez din nou in legatura cu acelasi subiect.....insa nu inteleg de ce iau 0 pct cu sursa asta:((..... Imi da WA la toate testele.....iar pe testele de la oji imi merge perfect.....de ce?
|
|
|
182
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 491 Lacusta
|
: Ianuarie 17, 2009, 17:01:08
|
Incearca sa pui unsigned short Tot imi da "Memory limit exces" pe primul si pe ultimul test....insa nu inteleg de ce.....pt ca dupa calculele mele, eu nu folosesc 600KB de memorie ..... LE: Scz....n-am fost atent...acum cand am modificat cu unsigned short imi da "Time limit exceeded." la primul si ultimul test ) Cum se rezolva problema?....eu am facut-o in o(m*n^2)...... LE: Am reusit pana la urma 100 in (M*2*n) ... si am vazut k acum imi incape o matrice de tip char si una de tip int.....asta e cam ciudat....
|
|
|
183
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 789 Marmote
|
: Ianuarie 12, 2009, 21:36:58
|
Scz....nu m-am gandit sa ma uit la discutiile din timpul concursului. Cred totusi ca ar trebui modificat in enuntul problemei acest lucru.... Acum am si eu o mica problema...Folosesc urmatoarea functie de verificare: int verifica(char mat[nmax][mmax], int n, int m, int x, int y, int l) { //verificam pt toate cele 4 pozitii maxime (colturile rombului) daca se afla in matrice si daca punctul este ocupat //inseamna ca atunci marmota nu se poate stabili if(x+l<=n && mat[x+l][y]) return 0; if(x-l>=1 && mat[x-l][y]) return 0; if(y+l<=m && mat[x][y+l]) return 0; if(y-l>=1 && mat[x][y-l]) return 0; return 1; //cele 4 puncte sunt libere, deci marmota se poate stabili }
Insa se pare ca nu functioneaza tocmai bine......si eu nu vad de ce:(
|
|
|
184
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2009 / Răspuns: Feedback Runda 2
|
: Ianuarie 11, 2009, 17:43:44
|
Am si eu o mica nelamurire... Nu inteleg de ce la statisticile mele arata ca am participat la:
Algoritmiada 2009, Runda 1, Clasele 11-12 Algoritmiada 2009, Runda 1, Studenti Algoritmiada 2009, Runda 2, Clasele 11-12 Algoritmiada 2009, Runda 2, Clasele 9-10 Algoritmiada 2009, Runda 2, Studenti
Daca eu nu m-am inscris decat la Clasele 11-12 la ambele runde?
|
|
|
185
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 789 Marmote
|
: Ianuarie 11, 2009, 16:18:42
|
Sper sa nu fi inteles eu gresit problema.....insa nu vad cum marmotele 1 si 3 isi pot face o vizuina. Marmota 1 cred ca ar avea nevoie si de pozitia 0,6....care teoretic nu ar trebui sa existe, iar Marmota 3, are punctul pe linia coloana 1.....deci jumatatea stanga din vizuina nu se poate construi..... Care este logica defapt?
|
|
|
187
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 775 Scandura
|
: Decembrie 14, 2008, 16:12:49
|
pt ca nu-i buna rezolvarea....de-aia
pt testul: 4 1 1 1 1 tie iti da 9....iar rezultatul corect e 8
Daca te refereai pentru testul : 4 2 1 1 1 1 Se efectueaza o taiere cu costul de 4, si se obtin doua scanduri de lungime 1 si 3. Se efectueaza o taiere cu costul de 3, si se obtin doua scanduri de lungime 1 si 2. Se efectueaza o taiere cu costul de 2, si se obtin doua scanduri de lungime 1. deci se obtin 4 scanduri de lungime 1, cu costul 4+3+2=9. Am inteles cumva eu gresit enuntul?
|
|
|
188
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 775 Scandura
|
: Decembrie 14, 2008, 15:21:48
|
De ce sursa asta i-a 0 pct? #include<stdio.h> #define infile "scandura.in" #define outfile "scandura.out" #define nmax 1000*1000+1 long v[nmax]; //vom salva toate lungimile de scandura ce trebuie obtinute (in ordine crescatoare) long n; //numarul de lungimi de scanduri long m; //numarul maxim de bucati ce se pot obtine dintr-o data long long l; //lungimea totala a scandurii
void citire(long v[nmax], long *n, long *m, long long *l) { long i; scanf("%ld %ld",n,m); for(i=1;i<=*n;i++) //luam fiecare lungime ce trebuie obtinuta { scanf("%ld",&v[i]); //citim lungimea *l+=v[i]; //adaugam la lungimea totala } }
long long calculeaza_efort(long v[nmax], long n, long m, long long l) { long i; long long e=0; //aici vom calcula efortul minim while(l>v[1]) //cat timp mai avem de taiat din scandura { e+=l; //adaugam costul operatiei, adica efortul for(i=1;i<m && n>0;i++,n--) //se rezolva m-1 bugati l-=v[n]; } return e; }
int main() { freopen(infile,"r",stdin); freopen(outfile,"w",stdout);
citire(v,&n,&m,&l); //citim datele si calculam lungimea totala a scandurii printf("%lld\n",calculeaza_efort(v,n,m,l));
fclose(stdin); fclose(stdout); return 0; }
|
|
|
190
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Răspuns: Evaluator
|
: Decembrie 10, 2008, 17:32:50
|
#include <stdlib.h> #include <time.h>
int main () { time_t start,end; double dif;
time (&start); system("program.exe"); time (&end); dif = difftime (end,start);
printf("%.3f\n", dif);
return 0; }
Ar trebuie sa mearga... iti afiseaza numarul de secunde cu 3 zecimale. Trebuie sa pui asta in acelasi folder cu programul caruia vrei sa-i testezi timpul. Functioneaza acesta, insa as avea o mica problema.... Timpul returnat de functia difftime este doar numarul de secunde.....toate zecimalele fiind doar 0......Cum pot remedia aceasta problema? Si as mai dori daca se paote sa opreasca program.exe dupa un anumit timp (in cazul in care nu termina el de executat)
|
|
|
192
|
Comunitate - feedback, proiecte si distractie / Off topic / Platforma de Concursuri Online
|
: Octombrie 06, 2008, 19:45:44
|
Salut.... Am creeat in vacanta de vara o Platforma de Concursuri Online, ce permite oricarui utilizator sa-si creeze propriul concurs, sau sa se inscrie la concursurile deja creeate (care din pacate nu prea sunt ). Intrebarile sunt de tip grila, fapt ceea ce ii permite aplicatiei creearea automata a clasamentului la sfarsitul etapei. Pagina concursului este la adresa http://www.it1.ro
|
|
|
194
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 049 Barbar
|
: 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?
|
|
|
195
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 049 Barbar
|
: 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; }
|
|
|
196
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 046 Text
|
: Aprilie 04, 2008, 16:53:30
|
@marius: citeste cu atentie enuntul. "intr-o" sunt 2 cuvinte. "...un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez ('a' .. 'z' , 'A' .. 'Z') @cosmin: in.getline(v,1050000,'EOF'); 'EOF' nu este end of file. foloseste functie pentru citire (in.get) citire sau foloseste (in loc de 'EOF') un caracter care nu apare niciodata (spre exemplu '\0') Multumesc:) Nu stiam ca '\0' este pana la sfarsitul fisierului:) Multumesc inca o data...am mai invatat ceva;))
|
|
|
198
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 046 Text
|
: Aprilie 04, 2008, 15:37:21
|
Eu cred ca asta e cel mai simplu algoritm, insa nu inteleg de ce imi pica testul 7. Imi da wrong Answer!....Vedeti voi ceva gresit?, ca eu nu vad... #include <fstream> using namespace std; fstream in,out; long i; char v[1050000]; long c=0,l=0,t=0;
int main() { in.open("text.in",ios::in); out.open("text.out",ios::out); in.getline(v,1050000,'EOF'); in.close(); i=0; while(v[i]!=0) { t=0; while(((v[i]>=65 && v[i]<=90) || (v[i]>=97 && v[i]<=122)) && v[i]!=0) { t++; i++; } if(t>0) { l=l+t; c++; } else i++; } if(c>0) out<<(l/c); else out<<"0"; out.close(); return 0; }
|
|
|
|