Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 102 Lanterna : Decembrie 13, 2015, 14:09:31
Ce pana corbului are asa special testul 9?
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 404 Lacuri : Februarie 27, 2015, 19:55:50
Poate sa imi spuna cineva ce are special testul 6? Mai exact prima cerinta.
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 824 Insule : Ianuarie 07, 2015, 16:43:28
BAD POST.
L.E:
Cei care credeti ca algoritmul este corect dar totusi nu luati 100, declarati matricea mai mare.
Pentru 3 matrici 101x101 am luat 88p, iar pentru 3 matrici 110x110 am luat 100p.
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 258 Alpin : Decembrie 27, 2014, 14:23:29
** De fapt iau Memory limit exceeded pe 2 teste, nu TLE.
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 258 Alpin : Decembrie 27, 2014, 14:20:33
Imi poate spune cineva de ce iau 0 pe toate testele (pe 3 iau TLE) ?

#include <fstream>
#include <queue>

using namespace std;

ifstream fin("alpin.in");
ofstream fout("alpin.out");

#define Dim 1024
#define INF 16384

short imin, jmin, imax, jmax;
short n, a[Dim][Dim], c[Dim][Dim], minim = INF, maxim = -16384;
const short di[] = { -1, 0, 1, 0 };
const short dj[] = { 0, 1, 0, -1 };
queue<pair<int, int> >Q;

void Read();
void Lee();
bool OK(int i, int j);
void Write(int i, int j);

int main()
{
    Read();
    Lee();
    fout << maxim << '\n';
    Write( imax, jmax );
    fout << imax << ' ' << jmax << '\n';
    fin.close();
    fout.close();
    return 0;
}

void Write(int i, int j)
{
    if ( i == imin && j == jmin )
        return;
    if ( c[j-1] == c[j] - 1 && OK(i,j-1) )
    {
        Write(i, j - 1);
        fout << i << ' ' << j - 1 << '\n';
    }
    else
    if ( c[i-1][j] == c[j] - 1 && OK(i-1,j) )
    {
        Write( i - 1, j);
        fout << i - 1 << ' ' << j << '\n';
    }
    else
    if ( c[j+1] == c[j] - 1 && OK(i,j+1) )
    {
        Write(i, j + 1 );
        fout << i << ' ' << j + 1 << '\n';
    }
    else
    if ( c[i+1][j] == c[j] - 1 && OK(i+1,j) )
    {
        Write(i + 1, j);
        fout << i + 1 << ' ' << j << '\n';
    }
}

void Lee()
{
    int i, j, iv, jv;
    Q.push({imin,jmin});
    c[imin][jmin] = 1;
    while ( !Q.empty() )
    {
        i = Q.front().first;
        j = Q.front().second;
        Q.pop();
        for ( int d = 0; d < 4; ++d )
        {
            iv = i + di[d];
            jv = j + dj[d];
            if ( OK(iv, jv) && a[iv][jv] > a[j] )
            {
                c[iv][jv] = c[j] + 1;
                Q.push({iv,jv});
                if ( c[iv][jv] > maxim ) {
                    maxim = c[iv][jv];
                    imax = iv, jmax = jv;} // retinem coord drumului maxim
            }
        }
    }
}

bool OK(int i, int j)
{
    if ( i < 1 or i > n or j < 1 or j > n )
        return false;
    return true;
}

void Read()
{
    fin >> n;
    for ( int i = 1; i <= n; ++i )
        for ( int j = 1; j <= n; ++j )
        {
            fin >> a[j];
            c[j] = INF;
            if ( a[j] < minim ) // cautam punctul de plecare
            {
                minim = a[j]; // adica minimul din matrice
                imin = i; // retinem coordonatele
                jmin = j;
            }
        }
}
6  infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: OJI 2014 : Martie 01, 2014, 17:21:18
Felicitari celor care s-au calificat la ONI!
Fiind prima mea olimpiada de informatica ( clasa a IX-a ), se pare ca anul acesta ma multumesc doar cu prima mentiune.
Bafta in continuare!  Winner 1st place
7  infoarena - concursuri, probleme, evaluator, articole / Probleme externe / Răspuns: Problema usoara, dar cu batai de cap. : Noiembrie 08, 2013, 17:36:10
Perfect, multumesc mult! Daca imi poti explica/da un link in care sa ma lamuresc care e diferenta dintre = si == sunt recunoscator! peacefingers
8  infoarena - concursuri, probleme, evaluator, articole / Probleme externe / Problema usoara, dar cu batai de cap. : Noiembrie 08, 2013, 16:41:57
Enunt:

Fie a si b doua numere intregi. Scrieti un algoritm care sa verifice daca numerele a si b sunt consecutive.

Incercare:

#include <iostream>
using namespace std;
int main()
{
    int a,b;
    cout<<"Dati a= ";
    cin>>a;
    cout<<"Dati b= ";
    cin>>b;
    if (a+1=b)cout<<"Numerele sunt consecutive";
    else cout<<"Numerele nu sunt consecutive";
    return 0;
}

Eroarea aparuta:
lvalue required as left operand of assignment

Ma puteti ajuta? Multumesc anticipat.
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines