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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2013, 19:11   #1
Виктория2909
Новичок
Джуниор
 
Регистрация: 03.06.2013
Сообщений: 2
По умолчанию Задача

Всем привет. Помогите пожалуйста решить задачу из тимуса.
Задача №1711
Представьте, что вам нужно подготовить комплект задач для ближайшего соревнования по программированию. Допустим, вы уже определились с задачами, которые вы планируете использовать. Первое, что нужно сделать перед тем, как начать составлять условия, готовить тесты и писать авторские решения, — это придумать для всех задач кодовые имена.
Кодовое имя — строка, однозначно идентифицирующая задачу. Теперь, например, вместо того чтобы говорить «задача про шифровальную решётку», вы можете просто сказать «задача grille».
Порядок задач в комплекте определяется очень просто — задачи располагаются в лексикографическом порядке их кодовых имён. Однако программный комитет часто хочет получить фиксированный порядок задач: например, поставить самую простую задачу на первое место, чтобы все команды решили её как можно раньше, или сделать «гроб» задачей G. Поэтому приходится подбирать кодовые имена для задач так, чтобы задачи шли в комплекте в нужном порядке. Именно это вам и предстоит сегодня сделать.
К счастью, программный комитет решил вам помочь и предложил для каждой из n задач, которые войдут в комплект, три варианта кодового имени. Вы же должны лишь выбрать для каждой задачи подходящий вариант.
Исходные данные
В первой строке записано число n (1 ≤ n ≤ 16) — количество задач в комплекте. В i-й из следующих n строк через пробел записаны три кодовых имени, подходящих для i-й задачи. В последней строке через пробел записана перестановка чисел от 1 до n — порядок, в котором задачи должны идти в комплекте. Каждое кодовое имя состоит из строчных латинских букв, а его длина не превосходит 20. Все кодовые имена различны.
Результат
Выведите n строк. В i-й строке выведите кодовое имя задачи, которая будет идти в комплекте i-й по счёту. Если возможных ответов несколько, выведите любой из них. Если выбрать кодовые имена требуемым образом невозможно, выведите «IMPOSSIBLE».

Вот есть код, но он не работает! Походу в нем ошибка! Помогите ее найти)
Код:
#include<iostream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main()
{
int b[26],n,i,j;bool t=true;
string a[26][3],str,s[26];
cin>>n;
for(i=0;i<n;i++)
                {
                cin>>a[i][0];
                cin>>a[i][1];
                cin>>a[i][2];
                if(a[i][1]>a[i][2])
                                   {
                                   str=a[i][1];
                                   a[i][1]=a[i][2];
                                   a[i][2]=str;
                                   }


                if(a[i][0]>a[i][1])
                                   {
                                   str=a[i][0];
                                   a[i][0]=a[i][1];
                                   a[i][1]=str;
                                   }


                }
   /*
for(i=0;i<n;i++)
{for(j=0;j<3;j++)
 cout<<a[i][j]<<" ";
 cout<<endl;
}   */
    for(i=0;i<n;i++)
                    {
                    cin>>b[i];
                    if(i==0)
                    s[i]=a[b[i]-1][0];
                    else{j=0;
                         while(a[b[i]-1][j]<=s[i-1]&&j<3)
                                       {


                                       j++;}
                         if(a[b[i]-1][j]>s[b[i]-1])
                         s[i]=a[b[i]-1][j];
                         else t=false;
                         }

                    }
                 if(t)
    for(i=0;i<n;i++)
    cout<<s[i]<<endl;
    else cout<<"IMPOSSIBLE";

system("pause");
}

Последний раз редактировалось Stilet; 03.06.2013 в 20:26.
Виктория2909 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на зачёт. проблема Задача на нобелевскую премию! Sabotage5 Паскаль, Turbo Pascal, PascalABC.NET 2 18.03.2013 15:18
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC kimberly Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 17:03
задача на структуру(struct)/задача на работу с файлом SevenArth Помощь студентам 0 26.04.2012 19:06
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51