Пример #1
0
int main(int argc, const char *argv[])
{
    // 2D array
    if (argc < 2)
        return -1;
    
    int nb_threads = 4;
    if (argc > 2)
        nb_threads = atoi(argv[2]);

    tbb::task_scheduler_init init(nb_threads);

    std::cout << "array of size: " << atoi(argv[1]) << "x" << atoi(argv[1]) << std::endl;
    std::cout << "using " << nb_threads << " threads" << std::endl;

    auto array_2D = tools::generate_2D_array<int>(atoi(argv[1]));
    tools::print_vector(array_2D);

    auto sub_array_2D = get_max_subarray(array_2D);

    tools::print_vector(sub_array_2D);

    //Parallel 2D
    //auto parallel_array = tools::generate_2D_array<int>(4);
    
    auto sub_thread = parallel_max_subarray(array_2D);

    tools::print_vector(sub_thread);

    return 0;
}
Пример #2
0
int main()
{
    int line_count, line_index = 1;
    scanf("%d", &line_count);
    int sequence_length, sequence_index, sequence_data[100000];
    while (line_index <= line_count) {
        scanf("%d", &sequence_length);
        sequence_index = 0;
        while (sequence_index < sequence_length) {
            scanf("%d", sequence_data + sequence_index);
            sequence_index++;
        }
        printf("Case %d:\n", line_index);
#ifndef ONLINE_JUDGE
        printf("%d", sequence_length);
        int index = 0;
        for (index = 0; index < sequence_length; index++)
            printf(" %d", sequence_data[index]);
        printf("\n");
#endif
        int sum, index_begin, index_end;
        sum = get_max_subarray(sequence_data, sequence_length,
                &index_begin, &index_end);
        printf("%d %d %d\n", sum, index_begin, index_end);
        if (line_index < line_count) printf("\n");
        line_index++;
    }
    return 0;
}