Форум программистов, компьютерный форум CyberForum.ru

Ошибка в решении задачи "Судоку" (acmp) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сравнить два int числа расположенных в char* строке http://www.cyberforum.ru/cpp-beginners/thread923400.html
Всем првиет. Имею проблему связанную с быстродействием. Нужно сравнить 2 строки на больше/меньше/равно. Каждый символ строки - число. строка строго 7 символов, т.е. 7 чисел. При приведении к int через функцию atoi() идет большая задержка (т.к. мильен итераций цикла, где находится данная проверка). Посоветуйте алгоритм сравнения.
C++ Неправельно работает конструктор(наверно) Вот класс и вот конструктор думаю знающие люди разберутся я создаю 1 элемент класса точнее указатель first на элемент который будет головным элементом динамического списка... если запустите программу увидите что создается 2 элемента и потом деструктор уничтожает 2й НО! не уничтожает первый и программа завершается..Почему?и работать не через указатель а создавать просто элементы класса то все... http://www.cyberforum.ru/cpp-beginners/thread923396.html
C++ Кольцевой буфер
Здравствуйте, уважаемые пользователи. Мне поставили задачу, которую я один решить не могу и поэтому обращаюсь за помощью к вам. Итак, у нас есть файл и мне нужно отфильтровать его. Но он просто огромный и мне сказали реализовать эту процедуру с помощью кольцевого буфера. Я не до конца понимаю каким образом мне сформировать его и сделать так, чтобы при окончании буфера он автоматически скидывал...
Перемещение содержимого из одного байта в другой байт C++
Здравствуйте все. Есть char A=3; char B=0; Как переместить физическое содержание битов из байта A в байт В, чтобы стало A=0 B=3;
C++ Применение полученных знаний. Больная тема http://www.cyberforum.ru/cpp-beginners/thread923297.html
Здравствуйте, уважаемые друзья! Хотел бы немножко поговорить с опытными людьми и узнать, как научиться применять свои знания, полученные в процессе обучения ? Вот предположим я - студент 4го курса, отличник, учусь на программиста, но есть одна проблема: я совершенно не понимаю, как применять свои знания. Я прочитал несколько книг по Си и Си++ (вне программы университета) справлялся с задачами,...
C++ Замена виртуальных функций шаблонами Такая задача - нужно заменить виртуальные функции шаблонами. Можно сделать так: struct Derived1; struct Derived2; template <typename T> struct Base { void f(); }; подробнее

Показать сообщение отдельно
nuts23
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 30
15.07.2013, 23:49  [ТС]     Ошибка в решении задачи "Судоку" (acmp)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
#include <stdio.h>
#include <math.h>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
 
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int N;
    scanf("%d", &N);
    int A[100][100];
    for (int i = 0; i < N*N; ++i)
        for (int j = 0; j < N*N; ++j)
        scanf("%d", &A[i][j]);
    int B[101];
    for (int i = 0; i <= N*N; ++i)
        B[i] = 0;
    int k;
    k = 0;
    for (int i = 0; i < N*N; ++i) // проверка по строкам
    {
        for (int j = 0; j < N*N; ++j)
        {
            B[A[i][j]] += 1;
        }
        for (int i = 1; i <= N*N; ++i)
            if (B[i] == 0)
                ++k;
        for (int i = 1; i <= N*N; ++i)
            B[i] = 0;
    }
    for (int j = 0; j < N*N; ++j) // проверка по столбцам
    {
        for (int i = 0; i < N*N; ++i)
        {
            B[A[i][j]] += 1;
        }
        for (int j = 1; j <= N*N; ++j)
            if (B[j] == 0)
            {
                ++k;
            }
        for (int j = 1; j <= N*N; ++j)
            B[j] = 0;
    }
    for (int i = 0; i < N; ++i) // проверка по подмассивам
    {
        for (int j = 0; j < N; ++j)
        {
            for (int m = 0; m <= N*N; ++m)
                B[m] = 0;
            for (int y = i*N; y < i*N+N; ++y)
            {
 
                for (int x = j*N; x < j*N+N; ++x)
                {
                    B[A[y][x]]=1;
                }
            }
            for (int c = 1; c <= N*N; ++c)
            if (B[c] == 0)
            {
                ++k;
                //printf("%d\n", c);
            }
        }
    }
    //printf("%d3\n", k);
    if (k == 0)
        printf("Correct");
    else
        printf("Incorrect");
    return 0;
}
Accepted
 
Текущее время: 07:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru