Afişează mesaje
Pagini: [1]
1  Comunitate - feedback, proiecte si distractie / Feedback infoarena / Răspuns: Evaluatorul ma uraste : Februarie 07, 2017, 13:19:12
Dupa 4 ore de cand ma chinui, in sfarsit mi-am dat seama unde am gresit iar acum am luat punctaj maxim. Multumesc oricum pentru ajutor!
2  Comunitate - feedback, proiecte si distractie / Feedback infoarena / Răspuns: Evaluatorul ma uraste : Februarie 07, 2017, 12:40:43
Pai, asta si vreau sa inteleg. DE ce codul meu merge gresit? Am omis ceva?
3  Comunitate - feedback, proiecte si distractie / Feedback infoarena / Evaluatorul ma uraste : Februarie 06, 2017, 21:09:49
Buna tuturor. Am o problema, sau poate chiar mai multe, cu evaluatorul. Sincer de cand am inceput sa trimit probleme la infoarena MEREU am avut probleme, din diverse cauze. Acum am citit documentatia evaluatorului. Insa de data asta chiar nu imi pot da seama cu ce am gresit. Deci, problema pe care am facut-o e aici: http://www.infoarena.ro/problema/cautbin .
Aici e programul facut de mine:
Cod:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int a[100000],N,i,j,result=-1,x,M;
short type;
int f0(int start,int end)
{
    int mid=(start+end)/2;
    if(start<=end)
    {if(a[mid]>x)
    return f0(start,mid-1);
    else
    if(a[mid]<x)
    return f0(mid+1,end);
    else
    {
        result=mid;
        f0(mid+1,end);
    }}
    return result;
}
int f1(int start,int end)
{
    int mid=(start+end)/2;
    if(start<=end)
    {if(a[mid]>x)
    return f1(start,mid-1);
    else
    {result=mid;
        return f1(mid+1,end);}
    }
    return result;
}
int f2(int start,int end)
{
    int mid=(start+end)/2;
if(start<=end)
{
  if(a[mid]<x)
  return f2(mid+1,end);
  else
  { result=mid;
    return f2(start,mid-1);}
}
   return result;}
int main()
{
   fin>>N;
    for(i=1;i<=N;i++)
    fin>>a[i];
    fin>>M;
    for(i=1;i<=M;i++)
    {
        fin>>type;
        fin>>x;
        if(type==0)
        fout<<f0(1,N)<<"\n";
        else
        if(type==1)
        fout<<f1(1,N)<<"\n";
        else
        fout<<f2(1,N)<<"\n";
    }
    return 0;
}

informatii aditionale: am gnu c++ compiler, vers. 10.05 codeblocks, windows 8.1. De-asemenea, am creat fisierele de intrare si iesire, iar toate file-urile, inclusiv executabil, sursa, tot tot tot, am redenumit cum zicea in enunt , adica cautbin.(extensia respectiva), tocmai ca sa fiu sigura ca nu am eroare. Aici e evaluarea programului meu:
 
Multumesc anticipat pentru ajutor!
4  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: For loop : Decembrie 07, 2016, 20:43:28
Omgg acum am inteles. Doamne, cred ca mi-am lasat capul acasa cand am intrebat asta Smile) . Mersi mult!
5  infoarena - concursuri, probleme, evaluator, articole / Informatica / For loop : Decembrie 06, 2016, 14:46:29
Salutare. Am o intrebare privind modul dubios in care se parcurge for loop. In acest program:
for(int i=1;i<=5;i++)
cout<<i<<"\n";

afiseaza exact asa cum e normal:
1
2
3
4
5

In schimb daca mai adaug o instructiune like:
for(int i=1;i<=10;i++)
{i=i*10;
cout<<i;}

îmi afiseaza doar : 10
De ce se intampla asta? Va multumesc anticipat!
6  infoarena - concursuri, probleme, evaluator, articole / Informatica / Parcurgerea functiei fill : Octombrie 24, 2016, 18:42:50
Buna tuturor. Am o intrebare privind programul de mai jos:
Cod:
#include <iostream>
using namespace std;
int a[100][100],n,m,i,j,c=1;
void fill(int i,int j)
{if (a[i][j]==1)
{a[i][j]=c;
fill(i+1,j);
fill(i-1,j);
fill(i,j+1);
fill(i,j-1);
}}
int main()
{cout<<"n=";
cin>>n;
cout<<"m=";
cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==1)
{c++;
fill(i,j);}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cout<<a[i][j];
return 0;}
Programul merge bine, dar problema mea este ca nu stiu cum sa parcurg partea asta:
Cod:
void fill(int i,int j)
{if (a[i][j]==1)
{a[i][j]=c;
fill(i+1,j);
fill(i-1,j);
fill(i,j+1);
fill(i,j-1);
}}
Nu ma intelegeti gresit, stiu la ce foloseste, dar nu stiu cum sa o parcurg, de exemplu, nu stiu cand iese din functie, cand revine la a doua apelare a functiei, and so on. Sunt disperata. Ma chinui la el de doua zile si tot nu imi dau seama cum. Imi puteti explica va rog frumos cum se parcurge? Multumesc mult!!
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines