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/249897
Nu 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:
Cod:
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 Very Happy
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 Tongue fara sef...si fara fii)
178  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 404 Lacuri : Ianuarie 29, 2009, 16:15:22
Evaluator sigur are : http://infoarena.ro/problema/lacuri?action=attach-list . Poate că scapă din vedere ceva atunci când îţi verifică drumul.
Vad ca are evaluator...insa din pacate nu pot sa vad sursa evaluatorului Sad
Poate se uita totusi cineva Very Happy
179  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 404 Lacuri : Ianuarie 29, 2009, 15:00:55
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/249897
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 Smile. Oricum, am trimis sursa ta cu extensia cpp si am luat 100 Thumb up

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  Fighting )
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  Embarassed. 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 Smile. Oricum, am trimis sursa ta cu extensia cpp si am luat 100 Thumb up

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/230175

Sursa mea este urmatoarea:
Cod:
...

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? Fighting
182  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 491 Lacusta : Ianuarie 17, 2009, 17:01:08
Incearca sa pui unsigned short Smile

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 Sad.....

LE: Scz....n-am fost atent...acum cand am modificat cu unsigned short imi da "Time limit exceeded." la primul si ultimul test Wink)
Cum se rezolva problema?....eu am facut-o in o(m*n^2)......

LE: Am reusit pana la urma 100 in (M*2*n)  Yahoo! ... 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:
Cod:
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?
186  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 491 Lacusta : Decembrie 15, 2008, 20:31:27
Am creeat doua tablouri asa:

unsigned char a[252][252];   //252*252*1/1024=62KB
int b[252][252];   //252*252*4/1024=248KB

62+248+cateva variabile int...... sigur e mai putin de 600KB...
De ce Memory limit exces pe primul si ultimul test? Calculez eu cumva memoria folosita gresit?
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?

Cod:
#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;
}
189  Comunitate - feedback, proiecte si distractie / Extinde arhiva / Răspuns: Probleme oji-uri : Decembrie 13, 2008, 23:29:12
V-as propune sa adaugati si problemele de la oji 2003.
Dupa parerea mea, in acel an s-au dat cele mai interesante probleme la clasa a 9-a si a 10-a din ultimii ani....
190  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Răspuns: Evaluator : Decembrie 10, 2008, 17:32:50
Cod:
 
#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)
191  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 485 Exp : Noiembrie 11, 2008, 22:28:27
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/230175

Sursa mea este urmatoarea:
Cod:
...

[edit] am scos sursa
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 Cry). 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
193  Comunitate - feedback, proiecte si distractie / Off topic / Evaluator Probleme : Aprilie 23, 2008, 23:35:15
Salut.
Vrem (eu si cativa colegi) sa facem un concurs de programare.
Si ne-am gandit ca ar fi bine sa avem problemele propuse de noi, iar pentru asta ne trebuie evaluator.
Intrebarea e urmatoarea:
Cum se face un evaluator?(pt windows)
Multumesc:)
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 Wink 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)
Cod:
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
Cod:
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 Yahoo!

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 Smile
stocarul [at] yahoo.com
Multumesc:)

Am pus aici si sursa:
Cod:
#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.
Citat
"...un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez ('a' .. 'z' , 'A' .. 'Z')
@cosmin:
Cod:
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;))
197  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 046 Text : Aprilie 04, 2008, 16:29:48
Sunt mult mai multe cazuri;)
Dar in enunt scrie negru pe alb: cuvantul are doar [a-z][A-Z]....deci iese din discuti eceasta problema;)
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...
Cod:
#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;
}
Pagini: 1 ... 6 7 [8]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines