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

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

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

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 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