Как исправить код? (олимпиадная задача) [требует правки]

238
02 ноября 2017, 07:22

Примеры
3
3
1 2
2 3
1 3
2
1 2

1 2

4
3
1 2
1 4
4 2
1
3

2

Мой код:

#include <iostream>
#include <vector>
#include <fstream>
#define forn(i,n)for(int i=0; i<n;i++)
using namespace std;  
int n, m, x, y;
vector<vector<int>> g;
vector<bool> used;
vector<int> comp;
vector<int> index;
void DFS(int v) 
{    
    used[v] = true;  
    comp.push_back(v);
    for (int i = 0; i<g[v].size(); ++i) 
    {   
        int to = g[v][i];
        if (!used[to])  
            DFS(to);
    }
}
int main()
{   
    int compon = 0;
    int k;
    int w;
    cin >> n;
    n++;
    cin >> m;
    used.resize(n);
    g.resize(n);
    forn(i, m)
    {
        cin >> x >> y;
        index.push_back(x);
        index.push_back(y);
        g[x].push_back(y);
        g[y].push_back(x);
    }
    cin >> k;
  for (int r = 0; r < k; r++) {
        cin >> w;
        for (int r = 0; r < m*2; r++) {
            if (r == w) {
                w=w-1;
                index.erase((index.begin()+ w));
                w++;
                index.erase((index.begin()+ w));
            }
            } 
    for (int i = 0; i < used.size() ; i++)
        used[i] = false;  
    for (int i = 0; i < used.size(); i++)
        if (!used[i])  
        {
        comp.clear();
        DFS(index[i]); 
            compon++;
        }
    cout << compon << " "; 
   }
}

С примерами работает правильно, а в следующем тесте. Ошибка при работе с памятью. Как исправить?

READ ALSO
Вызов operator[] через operator[] const

Вызов operator[] через operator[] const

Почему лучше вызывать константный operator[] из не константного operator[] а не наоборотЯ не вижу разницы между этими двумя способами

347
Что я делаю не так? C++ [требует правки]

Что я делаю не так? C++ [требует правки]

Перед тем, как задать switch, я пишу int a, дабы задать switch (a)

219
Задача по e-olymp C++ [требует правки]

Задача по e-olymp C++ [требует правки]

Не могу решить эту задачу (проходит 10 из 12 проверок): Задача №33

240
почему не срабатывает move() для sf::CircleShape

почему не срабатывает move() для sf::CircleShape

Не получается задать движение шаров в функции update():

441