fbpx

Problema #1008 – Spirala1 – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se dau n numere întregi. Calculaţi cel mai mic dintre cele n numere date.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere întregi, separate prin spaţii.

Date de ieşire

Programul afișează pe ecran numărul MIN, reprezentând cel mai mic dintre cele n numere date.

Restricţii şi precizări

  • 1 ≤ n ≤ 1000
  • cele n numere citite vor avea cel mult 9 cifre

Exemplu

Date de intrare

57 6 9 6 8

Date de ieșire

6
#include <bits/stdc++.h>

using namespace std;
ifstream cin("spirala1.in");
ofstream cout("spirala1.out");
int a[1001][1001];

int main()
{
    int n , x = 1 , y = 1;
    cin >> n;
    int l = sqrt(n);
    for(int i = 1 ; i <= l ; ++i)
        a[i][0] = a[i][l + 1] = a[0][i] = a[l + 1][i]=1;
    cin >> a[x][y];
    n--;
    while(n)
    {
        while(a[x + 1][y] == 0 && n)
        {
            x++;
            cin >> a[x][y];
            n--;
        }
        while(a[x][y + 1] == 0 && n)
        {
            y++;
            cin >> a[x][y];
            n--;
        }
        while(a[x - 1][y] == 0 && n)
        {
            x--;
            cin >> a[x][y];
            n--;
        }
        while(a[x][y - 1] == 0 && n)
        {
            y--;
            cin >> a[x][y];
            n--;
        }
    }
    for(int i = 1 ; i <= l ; ++i)
    {
        for(int j = 1 ; j <= l ; ++j)
            cout << a[i][j] << ' ';
        cout << endl;
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa