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

Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Корректно ли использовать goto? http://www.cyberforum.ru/cpp-beginners/thread1242177.html
Читал что оператор goto вообще советуют не использовать, кроме разве что глубоких циклов. Но нормально ли это будет, например, вот в таком коде: int main() { char choice; cin >> choice; while (cin.get() != '\n') { cin.ignore(100, '\n'); bad:cout << "Bad choice. Try again.\n"; cin >> choice;
C++ Найти медианы на всех префиксах последовательности X длины n и вывести их сумму В этой задаче необходимо найти медианы на всех префиксах последовательности X длины n и вывести их сумму. Медианой последовательности из нечетного (k = 2 ⋅ l + 1) количества элементов будем называть элемент, который стоял бы на (l + 1)-ом месте, если эту последовательность отсортировать. Медианой последовательности из четного (k = 2 ⋅ l) количества элементов будем называть элемент, который... http://www.cyberforum.ru/cpp-beginners/thread1242172.html
Требуется идентификатор, исправить ошибки C++
Помогите, пожалуйста, исправить ошибки. class rus_codecvt : public std::codecvt<char, char, std::mbstate_t> { protected: virtual result do_in(std::mbstate_t&, const char* from, const char* from_end, const char*& from_next, char* to, char* to_limit, char*& to_next ) const { const int i = std::min(to_limit - to, from_end - from); OemToCharBuff(from, to, i); from_next = from +...
C++ Написать небольшую прогу, которая понимает изменился ли бинарный файл или нет
Мне нужно написать небольшую прогу, которая понимает изменился ли бинарный файл или нет. #include <windows.h> #include <string> #include <iostream> #include <fstream> int main(int agrc, char** argv) { std::string fileName = "C:/GameDev/Safty Code challenger/OriginalFiles/house_24.bin"; HFILE hFile;
C++ Приостановить выполнение цикла до совершения какого-то действия http://www.cyberforum.ru/cpp-beginners/thread1242042.html
Я пишу дурака. Нужно, чтобы действия походить, отбиться, подкинуть и т.д. происходили до того момента, пока кол-во карт в отбое не будет равно 36. Проблема в том, что программа зацикливается на этом моменте:do { Go(); Defence(); Throw_Card(); //... } while (retreat.Count < 36); я хочу на время приостановить выполнение этого цикла, пока количество карт,...
C++ Порекомендуйте библиотеку для работы с большими числами Добрый день. Нужна библиотека для работы с большими числами, в которой определены следующие операции: умножение, деление, разность, сумма, деление с остатком. Какую библиотеку можете порекомендовать? подробнее

Показать сообщение отдельно
SlavaSSU
214 / 159 / 45
Регистрация: 17.07.2012
Сообщений: 587
13.08.2014, 20:01     Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки
C++ (Qt)
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
79
80
81
82
83
84
85
86
#pragma comment(linker, "/STACK:167177216")
 
#include <stdio.h>
#include <stack>
#include <math.h>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <string.h>
#include <string>
#include <memory.h>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <time.h>
#include <cassert>
#include <cstring>
//#include <unordered_set>
 
using namespace std;
 
#define mp make_pair
#define pb push_back
#define pii pair<int, int>
#define forn(i, n) for(int i = 0; i < (int)(n); i++)
#define x first
#define y second
 
typedef long long li;
typedef long double ld;
typedef unsigned long long uli;
 
const int INF = 1e9;
const ld eps = 1e-9;
const li MOD = (li)(INF + 7);
const li INF64 = (li)(INF) * (li)(INF);
 
const int ddx[] = {-1, 1, 1, -1};
const int ddy[] = {1, 1, -1, -1};
const int dx[] = {-1, -1, 0, 1, 1, 1, 0, -1};
const int dy[] = {0, 1, 1, 1, 0, -1, -1, -1};
const int dx4[] = {-1, 0, 1, 0};
const int dy4[] = {0, 1, 0, -1};
const int dxh[] = {-1, -1, -1, 1, 1, 1, 1, -1};
const int dyh[] = {1, -1, -1, -1, -1, 1, 1, 1};
const string dirs[] = {"RIGHT", "UP", "LEFT", "DOWN"};
 
bool in(int i, int j, int n, int m)
{
    return i >= 1 && i <= n && j >= 1 && j <= m;
}
 
int a[111111];
 
int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    //freopen("errors.txt", "w", stderr);
    //ios_base::sync_with_stdio(false);
    string s;
    getline(cin, s);
    int n = s.length();
    assert(n % 2 == 0);
 
    stack<int> pos;
    vector<pair<int, int> > ans;
 
    for(int i = 0; i < n; i++)
        if(s[i] == '(')
            pos.push(i);
        else
        {
            assert(!pos.empty());
            int idx = pos.top();
            pos.pop();
            ans.pb(mp(idx, i));
        }
 
    assert(pos.empty());
    sort(ans.begin(), ans.end());
    for(int i = 0; i < (int)(ans.size()); i++)
        printf("%d %d\n", ans[i].x + 1, ans[i].y + 1);
    return 0;
}
 
Текущее время: 12:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru