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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 21:14   #1
rubakKa
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 29
По умолчанию Матрица смежности

Нужно чтобы мосты были покрашены в цвет холмов, которые они соединяют. К сожалению, если холмы разного цвета, то покрасить мост таким образом не удастся. Посчитайте количество таких «плохих» мостов. Входные данные В файле INPUT.TXT в первой строке записано N (0 < N ≤ 100) – число холмов. Далее идет матрица смежности, описывающая наличие мостов между холмами (1 – мост есть, 0 – нет). Предпоследняя строка пустая, а в последней строке* записано N чисел, обозначающих цвет холмов: 1 – красный; 2 – синий; 3 – зеленый.

Получается как-то так:

Код:
#include <stdio.h>
main(){
       FILE *in,*out;
       in=fopen("input.txt","r");
       out=fopen("output.txt","w");
       char N[101][101];
       char f[101][101];
       int n,i,j,x;
       x=0;
       fscanf(in,"%d",&n);
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       fscanf(in,"%d",&N[i][j]);
       }
       }
       for(i=0;i<n;i++){
       j=n+3;
       fscanf(in,"%d",&f[i][j]);
       }
       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       if(N[i][j] == 1 && f[i][j]!=*N[i]){
                  x++;
                  }
                  }
                  }
n/=2;
fprintf(out,"%d",x);
fclose(in);
fclose(out);
}
Пример:

7
0 1 0 0 0 1 1
1 0 1 0 0 0 0
0 1 0 0 1 1 0
0 0 0 0 0 0 0
0 0 1 0 0 1 0
1 0 1 0 1 0 0
1 0 0 0 0 0 0

1 1 1 1 1 3 3

Вывод 7 заместо 3.. В чем ошибка?
rubakKa вне форума Ответить с цитированием
Старый 17.12.2010, 21:35   #2
rubakKa
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 29
По умолчанию

Изменил
Код:
for(j=0;j<n;j++){
       if(N[i][j] == 1 && f[i][j]!=*N[i]){
на
Код:
for(j=0;j<i-1;j++){
       if(N[i][j] == 1 && f[i]!=f[j]){
Вывод: 4..
Хм.. подозреваю что примеры у меня неверные..

Последний раз редактировалось rubakKa; 17.12.2010 в 21:38.
rubakKa вне форума Ответить с цитированием
Старый 17.12.2010, 23:52   #3
rubakKa
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 29
По умолчанию

Код правильный или нет?
rubakKa вне форума Ответить с цитированием
Старый 18.12.2010, 00:12   #4
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

А программа работает правильно или нет?)
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 18.12.2010, 07:17   #5
rubakKa
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 29
По умолчанию

Здесь http://acmp.ru/?main=task&id_task=125 Wrong Answer на третьем тесте..
rubakKa вне форума Ответить с цитированием
Старый 18.12.2010, 21:33   #6
rubakKa
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 29
По умолчанию

Вот работает:
Код:
#include <stdio.h>
main(){
       FILE *in,*out;
       in=fopen("input.txt","r");
       out=fopen("output.txt","w");
       char N[101][101];
       char f[101];
       int n,i,j,x;
       x=0;
       fscanf(in,"%d",&n);
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       fscanf(in,"%d",&N[i][j]);
       }
       }
       for(i=0;i<n;i++){
       fscanf(in,"%d",&f[i]);
       }
       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       if(N[i][j] == 1 && f[i]!=f[j]){
                  x++;
                  }
                  }
                  }
x/=2;
fprintf(out,"%d",x);
fclose(in);
fclose(out);
}
rubakKa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрица смежности/Си/загвоздка... nikalerochka Помощь студентам 1 24.11.2010 16:46
Матрица Смежности Alex_sim Помощь студентам 5 18.09.2010 21:37
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Графы, матрица смежности. SteRN89 Помощь студентам 1 14.01.2009 08:11