Ошибка с памятью [требует правки]

350
31 декабря 2016, 15:15

Здравствуйте! Не могу найти ошибку в программе, на моем компьютере все нормально работает, на сервере - нет. Поможете?

#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e9;
int main()
{
    ios::sync_with_stdio(false);
    long long k;
    string path;
    int lastOne;
    vector <int> distAns;
    scanf("%lld", &k);
    cin >> path;
    lastOne = path.rfind('1');
    path.resize(lastOne + 2);
    path[lastOne + 1] = '2';
    long long len = path.size();
    for (int i = 0; i < len; ++i)
    {
        if (path[i] != '1')
        {
            continue;
        }
        int count1 = 0;
        int dist = 0;
        int j;
        for (j = i + 1; j < len; ++j)
        {
            if (path[j] == '2')
            {
                j -= 1;
                break;
            }
            if (path[j] == '1')
            {
                count1 += 1;
            }
            if (count1 == k)
            {
                break;
            }
        }
        dist = (j - i) * 2;
        distAns.push_back(dist);
    }
    len = distAns.size();
    distAns[len - 1] = 0;
    for (int i = 0; i < len; ++i)
    {
        printf("%d ", distAns[i]);
    }
    return 0;
}
Answer 1

Вобщем, вот по вашему первому заказу - для каждой единицы выводит расстояние до следующей k-й единицы в строке.

int main()
{
    int k;
    string path;
    vector<size_t> dist;
    scanf("%d", &k);
    cin >> path;
    for(size_t i = 0; i < path.length(); ++i)
        if (path[i] == '1') dist.push_back(i);
    for(size_t i = 0; i < dist.size(); ++i)
    {
        size_t j = i + k;
        if (j >= dist.size())
            cout << "-\n";     // Такой единицы больше нет
        else
            cout << (dist[j]-dist[i]) << "\n";
    }
}

Например, для

2
0010100101111010101000101001001000010010001010101010000100

вывод имеет вид

5
5
3
2
2
3
4
4
6
6
5
6
8
8
7
6
4
4
4
7
-
-
READ ALSO
Как сделать UPDATE, а при отсутствии записи - INSERT?

Как сделать UPDATE, а при отсутствии записи - INSERT?

Цель такая: если запись с таким id есть, тогда делаем инкремент значения в столбце count этой строки, а если же нет, то создаём новую запись (у столбца...

464
статья про ошибки внешних ключей [требует правки]

статья про ошибки внешних ключей [требует правки]

Написал статью, в которой перечислил известные мне случаи ошибок внешних ключей, сведя их в единую таблицу для удобства диагностики

332