Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2016, 20:15   #1
ShuricFC
Пользователь
 
Регистрация: 17.09.2016
Сообщений: 25
По умолчанию Цикл в графк

Здравствуйте! Помогите пожалуйста доработать код. Цикл ищет правильно, а петли не ищет.

Код:
#include "iostream" 
#include "fstream" 
#include <vector> 
using namespace std;
vector<char> cl[100];
vector<int> p[100];
int dots[100];
int k;
int cycle_st, cycle_end;
bool cyclic(int v, int &cycle_st, vector <int> *graph, vector <int> &color) {
	color[v] = 1;
		for (size_t i = 0; i < graph[v].size(); ++i) {
			int to = graph[v][i];
			if (color[to] == 0) {
				if (cyclic(to, cycle_st, graph, color)) {
					dots[k] = to;
					k++;
					return true;
				
				}
			}
			else if (color[to] == 1) {
				cycle_st = to;
				return true;
			}
		}
	color[v] = 2;
	return false;
}

int main() {
	ifstream f("input.txt");
	ofstream f1("output.txt");
	int n, m, a, b, i;
	int cycle_st = -1;
	f >> n >> m;
	vector <int> g[100];
	vector<int> color(100);

	for (i = 0; i <m; i++) {
		{
			f >> a >> b;
			if (a==b) {
				dots[k] =a;
				k++;
			}
			g[a - 1].push_back(b - 1); }

	}
	
		for (int i = 0; i <n; i++) 
			if (cyclic(i, cycle_st, g, color)) {
				f1 << "YES" << endl;
				for (int c = k; c>=0; c--)
				f1 <<dots[c]+1<<" ";
				break;

			}
			else {
				f1 << "NO";
				break;
			}
		

		return 0;
}
ShuricFC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как составить цикл (for) чтобы цикл работал пока RegExp.Match не будет пустым? FleXik Общие вопросы Delphi 11 05.03.2014 14:49
написать процедуры для “Цикл For ... Next ” и «Цикл Do ... Loop» по ниже приведенному условию Кристина_Патачиц Microsoft Office Excel 3 17.04.2013 17:01
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34