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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2010, 18:18   #1
DarkMage
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 12
По умолчанию задача про муху

Здравствуйте! есть задачка http://ipc.susu.ac.ru/210-2.html?problem=187
Вот ее решение нашел. Сам недавно только программировать начал. Может ли кто объяснить попонятнее само решение задачи?



#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<list>
using namespace std;
int main()
{
vector<vector<char> >g(256);
int n;
cin>>n;
if(!n)return 0;

vector<int> test(256,0);
for(int i=0;i<n;i++)
{
char a,b;
cin>>a>>b;
g[b].push_back(a);
test[a]++;
test[b]--;
}

int first=-1,last=-1;
for(int i=0;i<256;i++)
{
if(test[i]==0)continue;
if(test[i]==-1&&first==-1){first=i;continue;}
if(test[i]==1&&last==-1){last=i;continue;}
cout<<"IMPOSSIBLE!";
return 0;
}

if(first==-1)
for(first=0;first<256;first++)
if(g[first].size())
break;

stack<char> s;
string out;
s.push(first);
while(!s.empty())
{
char c=s.top();

if (g[c].empty())
{
out+=c;
s.pop();
n--;
}
else
{
s.push(g[c].back());
g[c].pop_back();
}
}

if(n==-1)cout<<out;
else cout<<"IMPOSSIBLE!";

return 0;
}
DarkMage вне форума Ответить с цитированием
Старый 14.09.2010, 20:59   #2
jim1982
 
Регистрация: 14.09.2010
Сообщений: 3
По умолчанию

Я воще не вкурил чо требуется а главное зачем ?
jim1982 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про деревья. WhyBeNormal Паскаль, Turbo Pascal, PascalABC.NET 0 21.12.2008 23:51
Задача про 3 прямые meds Паскаль, Turbo Pascal, PascalABC.NET 5 17.11.2008 12:24
Задача про треугольник YO$YA Помощь студентам 10 15.11.2008 20:29
Задача про переключатели Night Помощь студентам 5 21.01.2007 18:15