Rezultati

Up. imeNalogaJezikRezultatČas oddaje
EOF-2017 Prijateljske besede C++ 100/100OK 20. apr '17 @ 17:53

Test Točke Porabljen spomin Porabljen čas Status
#1 12/12 3,211 MiB 0,004 s OK
#2 12/12 3,219 MiB 0,004 s OK
#3 12/12 3,215 MiB 0,296 s OK
#4 12/12 3,285 MiB 0,375 s OK
#5 13/13 3,219 MiB 0,022 s OK
#6 13/13 3,281 MiB 0,193 s OK
#7 13/13 3,219 MiB 0,010 s OK
#8 13/13 3,277 MiB 0,241 s OK

Ocenjevani program (Prijateljske besede.cpp):
#include <iostream>
#include <string>
#include <cstring>
#include <queue>
#define qf q.front()
using namespace std;

string beseda[3002];
bool visited[3002];
int N;

bool druzabnik(string a, string b){
	int i;
	for(i=0; i<3; i++){
		if(a[i] != b[i]) break;
	}
	if(i == 3) return true;
	
	for(i = 1; i<4; i++){
		if(a[a.size() - i] != b[b.size() - i]) break;
	}
	return (i == 4);
	
}


void BFS(){
	queue<int> q;
	
	q.push(0);
	visited[0] = true;
	int counter = 1;
	
	while(!q.empty()){
		for(int i=0; i<N; i++){
			if(i != qf && visited[i] == false){
				if(druzabnik(beseda[i], beseda[qf])){
					q.push(i);
					visited[i] = true;	
					counter ++;
				}	
			}
		}
		q.pop();
	}	
	cout<<counter;
	return;
}


int main(){
	memset(visited, false, sizeof(visited));
	cin>>N;
	
	for(int i=0; i<N; i++){
		cin>>beseda[i];
	}
	BFS();
	
	return 0;
}