Probleme de informatică
  Clasa a IX-a
1. Elementele de bază ale limbajului C++ (instructiunile limbajului) (46)
2. Subprograme predefinite (1)
3. Tablouri (145)
4. Fişiere text (2)
5. Algoritmi elementari (106)
6. Probleme diverse (13)
  Clasa a X-a
1. Subprograme definite de utilizator (87)
2. Şiruri de caractere (47)
3. Înregistrări (26)
4. Recursivitate (57)
5. Combinatorica (0)
6. Alocarea dinamică a memoriei (2)
7. Liste înlănţuite (25)
8. Algoritmul lui Lee (1)
  Clasa a XI-a

1. Metoda "Divide et impera" (12)
2. Metoda Backtracking (85)
3. Metoda Greedy (6)
4. Programare dinamică (18)
5. Grafuri neorientate (37)
6. Grafuri orientate (38)
7. Arbori (33)

  Clasa a XII-a
1. Elemente de baza C# (32)
2. POO in C# (13)
3. C# - Windows Form Application (24)
4. Admitere UBB (18)

   Home 7 Bacalaureat 2016   |   Variante bacalaureat 2009   |   Atestat  |   Olimpiada       
Noutăţi
Subiecte admitere la Facultatea de informatica UBB Cluj-Napoca
Subiecte bacalaureat 2010-2018
Bacalaureat 2018 - competenţe digitale
C# - Windows Form Application - exemple
Modele de proiecte de atestat
Bacalaureat 2018
Subiecte si rezolvări 2010-2018
Rezolvari variante bacalaureat 2009
Competenţe digitale
Examen atestat
Rezumat documentatie
php.doc
css.doc
exemple_php_si_css.rar
Modele de proiecte de atestat
Olimpiada
Clasele V-VI
Clasele VII-VIII
Clasa a IX-a
Clasa a X-a
Clasele XI-XII
Noţiuni teoretice
Metode de sortare
Metoda backtracking


Descriem un iceberg ca o matrice n*m in care valorile egale cu 1 reprezinta pozitii care apartin icebergului (sunt cu gheata), iar cele egale cu 0 pozitiile care apartin apei. Stiind ca icebergul este inconjurat de apa (nu exista nici o valoare de 1 pe marginea matricii) si ca regula de topire este urmatoarea: intr-un interval de timp se topeste o portiune care are cel putin doua laturi vecine cu apa, determinati si afisati cate intervale de timp sunt necesare ca icebergul sa se topeasca. De asemenea, afisati pentru fiecare interval de timp cate pozitii de gheata are icebergul la inceputul intervalului.
Exemplu:
6 7
0 0 0 0 0 0 0
0 1 1 1 1 1 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 1 1 1 1 1 0
0 0 0 0 0 0 0
se vor afisa:
4 (intervalele de timp)
16
12
8
2
Explicatie:
Dupa primul interval de timp ghetarul arata astfel:
0 0 0 0 0 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 0 0 0 0 0
Dupa cel de-al doilea interval de timp ghetarul arata astfel:
0 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 0 1 0 0 0
0 0 0 0 0 0 0
Dupa cel de-al treilea interval de timp ghetarul arata astfel:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
iar la pasul urmator se topeste de tot.

#include <fstream>
using namespace std;
ifstream is("date.in");
ofstream os("date.out");
int a[100][100],p[100],n,m,t=0;

void citire()
{
    int i,j;
    is>>n>>m;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
             is>>a[i][j];
}


int main()
{
    int i,k,j,s=0;
    citire();
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            {
              s=s+a[i][j];
              p[t]=s;
            }
    while(s>0)
    {
        s=p[t];
        for(i=1;i<n-1;i++)
            for(j=1;j<m-1;j++)
            if(a[i][j]==1)
            {
                k=0;
                if(a[i-1][j]==0) k++;
                if(a[i+1][j]==0) k++;
                if(a[i][j-1]==0) k++;
                if(a[i][j+1]==0) k++;
                if(k>=2)
                {
                    s--;
                    a[i][j]=2;
                }
            }
        t++;
        p[t]=s;
        for(i=1;i<n-1;i++)
            for(j=1;j<m-1;j++)
               if(a[i][j]==2) a[i][j]=0;
    }
    os<<t<<endl;
    for(i=0;i<t;i++) os<<p[i]<<endl;
    is.close();
    os.close();
    return 0;
}


  Clasa a IX-a
1. Elementele de bază ale limbajului C++ (instructiunile limbajului) (46)
2. Subprograme predefinite (1)
3. Tablouri (145)
4. Fişiere text (2)
5. Algoritmi elementari (106)
6. Probleme diverse (13)
  Clasa a X-a
1. Subprograme definite de utilizator (87)
2. Şiruri de caractere (47)
3. Înregistrări (26)
4. Recursivitate (57)
5. Combinatorica (0)
6. Alocarea dinamică a memoriei (2)
7. Liste înlănţuite (25)
8. Algoritmul lui Lee (1)
  Clasa a XI-a

1. Metoda "Divide et impera" (12)
2. Metoda Backtracking (85)
3. Metoda Greedy (6)
4. Programare dinamică (18)
5. Grafuri neorientate (37)
6. Grafuri orientate (38)
7. Arbori (33)

  Clasa a XII-a
1. Elemente de baza C# (32)
2. POO in C# (13)
3. C# - Windows Form Application (24)
4. Admitere UBB (18)

Calculatoare si accesorii second hand
Copyright 2009-2017 Muresan Vasile Ciprian - mcip.ro