#include <iostream>
#include <vector>
#include <set>
#define maxn 10001
using namespace std;
int m,n;
bool visited[maxn]= {false};
int color[maxn];
vector<int>v[maxn];
int f=0;
set<int>s;
void init()
{
    s.clear();
    f=0;
    for(int i=0; i<n; ++i)
        visited[i]=false;

}
int main()
{

    cin>>n>>m;
    for(int i=0; i<m; ++i)
    {
        int a,b;
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    int k;
    cin>>k;
    while(k--)
    {
        init();
        for(int i=0; i<n; ++i)
        {
            cin>>color[i];
            s.insert(color[i]);

        }
        int c=s.size();//K种颜色
        for(int i=0; i<n; ++i)
        {
            for(int j=0; j<v[i].size(); ++j)
            {
                if(visited[v[i][j]]==true)
                {
                    continue;
                }
                else
                {
                    if(color[i]==color[v[i][j]])
                    {
                        f=1;
                        break;

                    }

                }

            }
            if(f==1)
            {
                break;

            }


        }
        if(f==1)
        {
            cout<<"No"<<endl;
        }
        else
        {
            cout<<c<<'-'<<"coloring"<<endl;

        }

    }


    return 0;
}

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐