同一行未使用或未输入的数据要记得丢弃!!!
while (cin.get() != '\n') continue;
#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;
int M, N, L,a, b, c;
vector<vector<int> > v;
vector<int> vm;
vector<int> all;
bool check(int n)
{
if (v[n].size()==0)
{
return true;
}
for (int i = 0; i < v[n].size(); i++)
{
if (find(vm.begin(), vm.end(), v[n][i]) == vm.end())
return false;
}
return true;
}
int main()
{
cin >> N >> M;
v.resize(N);
for (int i = 0; i < M; i++)
{
cin >> a >> b;
a--;
b--;
v[b].push_back(a);
}
cin >> L;
for (int i = 0; i < L; i++)
{
int cnt = 0;
for (; cnt < N; cnt++)
{
cin >> a;
if (check(a - 1))
vm.push_back(a - 1);//现有的数列的集合
else
{
while (cin.get() != '\n') continue;
break;
}
}
if (cnt!=N)
{
all.push_back(i);
}
vm.clear();
}
if (all.size()!=0)
{
cout << all[0];
}
for (int i = 1; i < all.size(); i++)
{
cout << " "<<all[i];
}
system("pause");
return 0;
}
网友评论