ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1085. Встреча

WA 15
Послано And IV 28 июн 2007 00:52
#include<iostream>;

#include<algorithm>;
using namespace std;
//ofstream cout("out.txt");
//ifstream cin("in.txt");
int n,m,i,o,ii,k,l,pp[101],z,a,b,c,ad,kk,nn,mnn=999999999;
int och[101];
bool be[101],bb[101],b1=false;
int bi[101];
bool gr[101][101];
int main()
{
cin>>n>>m;
 for(i=1;i<=m;i++)
 {
 cin>>pp[0];
  for(o=1;o<=pp[0];o++) cin>>pp[o];
  for(o=1;o<=pp[0];o++)
  {
  be[pp[o]]=true;
    for(ii=1;ii<=pp[0];ii++)
    {
    if(pp[ii]!=pp[o]) gr[pp[o]][pp[ii]]=true;
    }
  }
 }
 cin>>k;
 for(i=1;i<=k;i++)
 {
 fill(&bb[1],&bb[100],false);
 fill(&pp[1],&pp[100],0);
 cin>>a>>b>>c;
 och[0]=1;kk=0;
 bb[b]=true;
 pp[b]=0;
 och[1]=b;
 z=0;
 ad=4;
 if (c==1) ad=0;
   while(och[0]>z)
   {
     z+=1;




    for(o=1;o<=n;o++)
    if(gr[och[z]][o] &&(!bb[o])&&(pp[och[z]]+ad<=a))
    {
    bb[o]=true;
    och[0]++;
    och[och[0]]=o;
    pp[o]=pp[och[z]]+ad;
    bi[o]+=pp[o];
    }
   }
 for(o=1;o<=n;o++) be[o]=be[o]&&bb[o];
 }
for(o=1;o<=n;o++)
{
b1=b1||be[o];
if((be[o])&&(bi[o]<mnn))
 {
 nn=o;
 mnn=bi[o];
 }
}
if(!b1) cout<<"0";
else cout<<nn<<" "<<mnn;
return 0;