Afişează mesaje
Pagini: 1 [2]
26  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 387 Distincte : Iunie 27, 2013, 18:15:58
Mersi. ^_^
Mi-a mers...ce-i drept mi-a mers doar pe cateva teste, pe restul TML...momentan o las asa pentru ca nu stiu 'arbori de intervale' .
27  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Iunie 27, 2013, 18:05:28
http://www.infoarena.ro/job_detail/967457?action=view-source

Bun...am ajuns cu sursa pana in stadiul acesta.
Am modificat din min<=max in min<max si am folosit o variabila 'val' care retine fct(mid) - ca sa n-o mai apelez de 2 ori.
Diferenta nu s-a simtit...tot 50 de puncte iau Very Happy
Alte idei?
28  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 387 Distincte : Iunie 27, 2013, 17:42:48
Cod:
int calculeaza (int x,int y)
{
    int i,sum=0;
    bool h[NMax]={0};
    for (i=x;i<=y;i++)
    {
        if (h[v[i]]) i++;
        else
        {
            sum=sum+v[i];
            h[v[i]]=1;
        }
    }
    return sum;
}

Ce este gresit la acest subprogram care calculeaza suma elementelor distincte intre pozitiile x si y ([x;y]) Huh
in v[] retin elementele vectorului si h[] e un fel de vector caracteristic (am incercat sa fac un fel de hash...nu prea ma pricep) Very Happy
29  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Iunie 27, 2013, 09:07:46
George Marcus:In while trebuie sa o apelez mereu pentru ca variabila mid se schimba.
Mihai Calancea:Poti sa fii mai explic, te rog? Chiar nu inteleg de ce cicleaza cand raspunsul e -1.
30  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Iunie 26, 2013, 21:33:28
http://www.infoarena.ro/job_detail/967027?action=view-source
Ce as mai putea sa fac sa-mi intre in timp sursa?
Primesc TML pe 10 teste  Brick wall
31  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 295 Noroc : Iunie 26, 2013, 18:30:49
Innebunesc ^_^ !!!
Ce este gresit???
Cod:
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("noroc.in");
ofstream g("noroc.out");
int main ()
{
    double x,m,rez;
    f>>x>>m;
    rez=(formula pentru probabilitate);
    if (m<=x && m>=0 && x>=0) {g<<100.0000000;return 0;}
    if (rez<0) {g<<0.0000000;return 0;}
    if (m<0) {g<<0.0000000;return 0;}
    if (x<0) {g<<0.0000000;return 0;}
    g<<fixed<<setprecision(7)<<rez;
}
Daca scot cele 4 if-uri iau 80...daca le bag iau 70...ce cazuri speciale sunt pe testele 3, 4 si 5?
Putin ajutor? Sad


L.E: M-am mai uitat pe restrictiile problemei si am scos if-urile si am lasat doar "if (x>=m) {g<<0.0000000;return 0;}" pt ca 1<=x,m<=32000...tot 80 de puncte iau...nu vad ce cazuri speciale ar mai fi.
32  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 035 Subsecventa de suma maxima : Iunie 23, 2013, 16:54:51
Mda...neatentia.
Mersi!  Applause

EDIT:Am mai crescut cu 5 puncte Very Happy ... testele 4 si 10 tot nu merg Confused
33  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 035 Subsecventa de suma maxima : Iunie 23, 2013, 00:05:56
Aha..m-am prins, am sa incerc sa implementez ceva maine (adica azi Very Happy )...
Multumesc mult!!  Thumb up

EDIT:Bun...am incercat sa modific programul a.i. sa aiba complexitate O(n) si sa nu-mi mai dea WA la testele 3,4 si 10.
Dupa cateva incercari am zis sa apelez la 'BF' (brute force) si sa mai fac o parcurgere la sf programului (O(2*n)) a.i. sa-mi gaseasca, daca exista, o subsecventa de la lungime 1 care sa fie maxima...n-a mers...tot primesc WA pe 3,4 si 10.
Alte idei???  Brick wall Brick wall Brick wall
34  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 035 Subsecventa de suma maxima : Iunie 22, 2013, 12:04:09
Ce au special testele 3,4 si 10?
Nu inteleg ce gresesc...
Se poate uita cineva pe sursa mea, va rog?
http://www.infoarena.ro/job_detail/964782?action=view-source
35  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 056 Aria : Iunie 18, 2013, 17:22:14
Niste idei despre modul de aflare al coord de intersectie a celor 2 polig???
 Very Happy Very Happy Very Happy ceva nu foarte complicat...cam pentru a 10-a intensiv.
Multumesc.
36  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: Labirint : Februarie 27, 2013, 10:49:57
Bun....acum am alta problema Very Happy
Algoritmul merge doar pentru matrice patratica!!!
Solutii??? Very Happy
37  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: Labirint : Februarie 26, 2013, 14:18:59
Multumesc! Tongue
Neatentia asta...
Bun...momentan stiu ca algoritmul merge binisor dar mai am o eroare.
Testul de iesire este:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 2 1 2 -1 0
0 0 3 2 0 0 0
0 0 4 3 0 0 0
0 0 5 0 0 0 0
0 0 0 0 0 0 0
Deci...la inceput e ceva gresit, deoarece pe parcurs vad ca merge.
Test de iesire bun:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 3 2 1 -1 0
0 0 4 3 2 0 0
0 0 5 4 0 0 0
0 0 6 0 0 0 0
0 0 0 0 0 0 0
EDIT:
Gata am rezolvat Very Happy :
Problema era de la acel "-1" si pentru rezolvare am schimbat randul
b[l[0]][c[0]]=a[l[0]][c[0]];
cu
b[l[0]][c[0]]=a[l[0]][c[0]]=0;
(in speranta ca va mai avea cineva nevoie Smile )
38  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Labirint : Februarie 25, 2013, 22:52:12
Am incercat sa rezolv o problema cu un labirint (mai exact https://infoarena.ro/algoritmul-lee prima), dar imi intra in bucla infinita.
Problema este partial rezolvata...adica am incercat s-o fac pana la afisarea celei de a 2-a matrici (in care am retinut nr de pasi)
Sugestii?
Sursa :
Cod:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("labirint.in");
ofstream g("labirint.out");
void bordare (int m, int n,int a[100][100])
{
    int k;
    for (k=0;k<=n;k++)
    {
        a[0][k]=0;
    }
    for (k=0;k<=n;k++)
    {
        a[n+1][k]=0;
    }
    for (k=n+1;k>=1;k--)
    {
        a[k][m+1]=0;
    }
    for (k=m+1;k>=1;k--)
    {
        a[k][0]=0;
    }
}
int main ()
{
    int a[100][100],b[100][100]={0},d1[]={0,1,0,-1},d2[]={-1,0,1,0},l[1000],c[1000],x,y,x1,y1,i,j,m,n,k;
    f>>m>>n;
    for (i=1;i<=m;i++)
    {
        for (j=1;j<=n;j++)
        {
            f>>a[i][j];
        }
    }
    bordare (m,n,a);
    for (i=1;i<=m;i++)
    {
        for (j=1;j<=n;j++)
        {
            if (a[i][j]==-1) {l[0]=i;c[0]=j;}
        }
    }
    b[l[0]][c[0]]=a[l[0]][c[0]];
    i=j=0;
    while (i<=j)
    {
        x=l[i];
        y=c[i];
        for (k=0;j<4;k++)
        {
            x1=x+d1[k];
            y1=y+d2[k];
            if (a[x1][y1]!=0)
            {
                if (b[x1][y1]==0)
                {
                    b[x1][y1]=a[x1][y1]+b[x][y];
                    j++;
                    l[j]=x1;
                    c[j]=y1;
                }
                else if (b[x][y]+a[x1][y1]<b[x1][y1])
                {
                    b[x1][y1]=b[x][y]+a[x1][y1];
                    j++;
                    l[j]=x1;c[j]=y1;
                }
            }
        }
        i++;
    }
    for (i=0;i<=m+1;i++)
    {
        for (j=0;j<=n+1;j++)
        {
            cout<<b[i][j]<<" ";
        }
        cout<<endl;
    }
}
PS:am modificat putin enuntul problemei (am inversat 0 cu 1)
adica testul este cam asa :
5 5
0 0 0 0 0
0 1 1 1 -1
0 1 1 0 0
0 1 1 0 0
0 1 0 0 0
-si se poate merge doar pe 1
39  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Ianuarie 20, 2012, 01:52:29
Nu am facut citirea din fisiere ... rog sa fie stearsa  Smile
Multumesc!
Pagini: 1 [2]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines