infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Stefan Istrate din Februarie 07, 2010, 16:52:19



Titlul: 968 Bila
Scris de: Stefan Istrate din Februarie 07, 2010, 16:52:19
Aici puteti discuta despre problema Bila (http://infoarena.ro/problema/bila).


Titlul: Răspuns: 968 Bila
Scris de: Burdusa Petru din Martie 23, 2015, 14:31:29
Buna ziua, am si eu o nelamurire. Am rezolvat aceasta problema, am trimis-o si am luat 0 puncte(la toate testele scrie: "Incorect"). Am descarcat testele si imi da rezultatul bun, dar pe jumatate depaseste timpul. Va las sursa mai jos, daca poate cineva sa se uite pe ea sa-mi spuna daca defapt am gresit eu ceva.

#include<iostream>
#include<fstream>
using namespace std;
int x[130][130],i,j,m,n,qq,maxim,l,c,minim=100000;
short q[130][130];
int main()
{
    fstream in("0-bila.in");
    ofstream out("bila.out");
    in>>n>>m;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            in>>x[j];
        }
    }
    for(i=0;i<=n+1;i++)
    {
        x
  • =100000;
        x[m+1]=100000;
    }
    for(i=0;i<=m+1;i++)
    {
        x[0]=100000;
        x[n+1]=100000;
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            q[j]++;
            l=i;
            c=j;
            while(x[l][c]>x[l][c-1] || x[l][c]>x[l][c+1] || x[l][c]>x[l+1][c] || x[l][c]>x[l-1][c])
            {

                if(x[l][c]>x[l][c-1] && x[l][c-1]<x[l][c+1] && x[l][c-1]<x[l+1][c] && x[l][c-1]<x[l-1][c])
                {
                    c--;
                }
                else
                {
                    if(x[l][c]>x[l][c+1] && x[l][c+1]<x[l][c-1] && x[l][c+1]<x[l+1][c] && x[l][c+1]<x[l-1][c])
                        c++;
                    else
                    {
                       if(x[l][c]>x[l+1][c] && x[l+1][c]<x[l][c-1] && x[l+1][c]<x[l][c+1] && x[l+1][c]<x[l-1][c])
                            l++;
                       else
                       {
                           if(x[l][c]>x[l-1][c] && x[l-1][c]<x[l][c-1] && x[l-1][c]<x[l][c+1] && x[l-1][c]<x[l+1][c])
                            l--;
                       }
                    }
                }
                q[j]++;

            }
        }
    }
            for(i=1;i<=n;++i)
            {
                for(j=1;j<=m;j++)
                {
                    if(q[j]>maxim)
                        maxim=q[j];
                }
            }
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=m;j++)
            {
                if(q[j]==maxim && x[j]<minim)
                    minim=x[j];
            }
        }
        out<<maxim<<' '<<minim<<'\n';
}


Titlul: Răspuns: 968 Bila
Scris de: Vasile Catana din Martie 24, 2015, 13:09:53
Salut!! Consider ca limita de memorie 640 kbytes e prea mica  :-'


Titlul: Răspuns: 968 Bila
Scris de: cont-vechi din Martie 25, 2015, 00:47:19
E buna limita  :ok: doua tablouri (int) iti ajung pentru rezolvare  :-'


Titlul: Răspuns: 968 Bila
Scris de: Vasile Catana din Martie 25, 2015, 12:07:19
Ar trebui sa schimb metoda de rezolvare..Pe campion am 100 , acolo memoria este de 2MB. BTW, nu prea cred ca la vreun concurs,la un asa de tip de problema, se va da o astfel de limita.


Titlul: Răspuns: 968 Bila
Scris de: Mihai Calancea din Martie 25, 2015, 12:36:52
Problemele au fost puse in general cu limita de memorie din concurs. La OJI au fost limite de genul asta pana in 2009 inclusiv :)