Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 824 Insule : Februarie 13, 2017, 12:44:14
Nu stie cineva de ce primesc constant 0 puncte?
Cod:
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("insule.in");
ofstream g("insule.out");


int dl[4]= {0,1,0,-1};
int dc[4]= {1,0,-1,0};
int v[250][250];
int x[4];
void Lee(int i,int j,int &mx,int n,int m)
{

    for (int di=0; di<4; di++)
    {
        int iu=i,ju=j,o=0;
        iu+=dl[di];
        ju+=dc[di];
        while (v[iu][ju]==0&&iu>-1&&ju>-1&&iu<n&&ju<m)
        {
            o++;
            iu+=dl[di];
            ju+=dc[di];
        }
        if (v[iu][ju]==2)
            if (o<mx&&o!=0)
                mx=o;
    }
}


int main()
{
    int n,m,a,mx=105;
    f>>n>>m;
    for (int i=0; i<n; i++)
    {
        f>>a;
        int j=0;
        while (a)
        {
            v[i][m-j-1]=a%10;
            a/=10;
            j++;
        }
    }
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
        {
            if (v[i][j])
                if (v[i-1][j]!=v[i][j]&&v[i][j-1]!=v[i][j])
                    x[v[i][j]]++;
            if (v[i][j]==1)
                Lee(i,j,mx,n,m);
        }
    for (int i=1; i<4; i++)
        g<<x[i]<<' ';
    if (mx!=105)
    g<<mx;
    else
        g<<0;
    f.close();
    g.close();
    return 0;
}
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines