Rezultati

Up. imeNalogaJezikRezultatČas oddaje
tab-2019 Gozdovi C++ 100/100OK 24. apr '19 @ 16:56

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 10/10 3,191 MiB 0,000 s OK
#2 [več] 10/10 3,164 MiB 0,016 s OK
#3 [več] 10/10 8,535 MiB 0,063 s OK
#4 [več] 10/10 3,145 MiB 0,022 s OK
#5 [več] 10/10 3,191 MiB 0,000 s OK
#6 [več] 10/10 3,801 MiB 0,034 s OK
#7 [več] 10/10 3,070 MiB 0,038 s OK
#8 [več] 10/10 3,059 MiB 0,021 s OK
#9 [več] 10/10 3,219 MiB 0,009 s OK
#10 [več] 10/10 3,090 MiB 0,014 s OK

Ocenjevani program (main.cpp):
#include <iostream>
#include <vector>
#include <cstdio>
#include <string>
#include <math.h>
#include <algorithm>

using namespace std;

 vector<string> data;

void check(int i,int j,char g){
    if(data[i][j]==g) data[i][j]='|';
    else return;
    if(i>0) {
        check(i-1,j,g);
        if(j>0) check(i-1,j-1,g);
        if(j<data[i].size()-1) check(i-1,j+1,g);
    }
    if(j>0) check(i,j-1,g);
    if(j<data[i].size()-1) check(i,j+1,g);
    if(i<data.size()-1){
        check(i+1,j,g);
        if(j>0) check(i+1,j-1,g);
        if(j<data[i].size()-1) check(i+1,j+1,g);
    }
}

int main()
{
    int n,m;
    cin>>n>>m;
    while(n!=0||m!=0){
        int ng=0;
        cin.ignore();
        string in;
        for(int i=0;i<n;++i){
            cin>>in;
            data.push_back(in);
        }
        for(int i=0;i<n;++i){
            for(int j=0;j<m;++j){
                    if(data[i][j]!='|'){
                        ng++;
                        check(i,j,data[i][j]);
                    }
            }
        }
        data.clear();
        cout<<ng<<endl;
        cin>>n>>m;
    }
    return 0;
}