Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.04.2007, 23:56
Новичок

Отправить личное сообщение для armansuleimenov Посмотреть профиль Найти все сообщения от armansuleimenov
 
Регистрация: 10.04.2007
Сообщений: 1

Задача g6_1011: Города
пытаюсь решить задачу
http://g6prog.narod.ru/g6_1011.html

пытался следовать советам Михаила Сергеевича, но пока безуспешно. Вот мой код-черновик на С++, можете подсказать, что в нем не так?

Код:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cctype>
 
using namespace std;

void rec(string tmp, vector<string> cities, vector<string> curchain, vector<string> maxchain, vector<bool> flags);

int main ()
{
  ifstream fin;
  vector<string> cities, maxchain, curchain;
  vector<bool> flags;
  string s;
  fin.open("inputs.txt");

  fin >> s;
  while(!fin.eof())
  {
    cities.push_back(s);
    fin >> s;
  }
  for (u_int i = 0; i < cities.size(); ++i)
    flags.push_back(false);

  for (u_int i = 0; i < cities.size(); ++i)
    rec(cities[i], cities, curchain, maxchain, flags);
  
  for (u_int i = 0; i < maxchain.size(); ++i)
    cout << maxchain[i] << endl;

  fin.close();   
  return EXIT_SUCCESS;
}

void rec(string tmp, vector<string> cities, vector<string> curchain, vector<string> maxchain, vector<bool> flags)
{
  u_int loc;
  for (u_int i = 0; i < cities.size(); ++i)
  {
    if (cities[i] == tmp)
    {
      loc = i;
      break;
    }  
  }

  flags[loc] = true;
  
  curchain.push_back(tmp);
  for (u_int i = 0; i < cities.size(); ++i)
  {
    if ( (flags[i] == false) && (tmp[tmp.length() - 1] == tolower(cities[i][0])) )
      rec(cities[i], cities, curchain, maxchain, flags); 
  }
  if (curchain.size() > maxchain.size())
  {
    vector<string> temp = curchain;
    curchain = maxchain;
    maxchain = temp;
  }
}
  #2  
Старый 19.07.2010, 17:56
Новичок

Отправить личное сообщение для m1st Посмотреть профиль Найти все сообщения от m1st
 
Регистрация: 19.07.2010
Сообщений: 1

Привет, решение данной задачи на Java. Покритикуйте. (файл-список городов в аттаче):
Код:
package OlympicExercises;

import java.io.*;
import java.util.ArrayList;

public class g6_1011 {
    public static void main(String[] args) throws IOException {
        BufferedReader in2 = new BufferedReader(new FileReader("src/OlympicExercises/cities.txt"));
        String city2;
        ArrayList cities = new ArrayList();
        while((city2 = in2.readLine()) != null)
        cities.add(city2);
        in2.close();

        String city3, firstChar;
        boolean[] used = new boolean[cities.size()];
        ArrayList citiesSequenceTMP = new ArrayList(),
                     citiesSequence = new ArrayList();
        for(int i4 = 0; i4 < cities.size(); i4++) {
        for(int i3 = 0; i3 < cities.size(); i3++) {
            used[i3] = false; }
        String city = cities.get(i4).toString();
        String lastChar = city.substring(city.length()-1);
        for(int i2 = 0; i2 < cities.size(); i2++) {
            for(int i = 0; i < cities.size(); i++) {
//                if(cities.get(i).toString().equals(city)) continue;
                if(used[i]) continue;
                city3 = cities.get(i).toString();
                firstChar = city3.substring(0, 1).toLowerCase();
                if(firstChar.equals(lastChar)) {
                    citiesSequenceTMP.add(cities.get(i));
                    lastChar = city3.substring(city3.length()-1);
                    used[i] = true;
                    }
                }
            if(citiesSequenceTMP.size() > citiesSequence.size()) {
                citiesSequence.clear();
                citiesSequence.addAll(citiesSequenceTMP);
                citiesSequenceTMP.clear();
        }
            if(citiesSequenceTMP.size() < citiesSequence.size())
                citiesSequenceTMP.clear();
                }
        }
        System.out.println(citiesSequence + " = " + citiesSequence.size() + " cities");
    }
}
Вложения:
Тип файла: txt cities.txt (1.7 Кб, 8 просмотров)
  #3  
Старый 10.11.2010, 20:06
Новичок

Отправить личное сообщение для хус++ Посмотреть профиль Найти все сообщения от хус++
 
Регистрация: 09.11.2010
Сообщений: 7

у меня ссылка не открылась
 


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

Расширенный поиск
Опции просмотра