제출 #153151

#제출 시각아이디문제언어결과실행 시간메모리
153151SwanPaths (BOI18_paths)C++14
23 / 100
3050 ms8824 KiB
#include <bits/stdc++.h>
#define stop system("pause")
#define INP freopen("input.txt","r",stdin)
#define OUTP freopen("solve1.txt","w",stdout)
#define int long long
using namespace std;

typedef long long ll;

vector<vector<int> > v;
const int maxn = 4e5;
int color[maxn];
bool c_used[maxn];
bool used[maxn];

bool is_good(int mask,int x){
    return !(mask&(1<<x));
}

int ans = 0 ;

void dfs(int u,int mask){
    if(mask)ans++;
    mask|=(1<<color[u]);
    for(int i(0); i < v[u].size();i++){
        int to = v[u][i];
        if(!is_good(mask,color[to]))continue;
        dfs(to,mask);
    }
}

main()
{
    ios_base::sync_with_stdio(0);
    int n,m,k; cin >> n >> m >> k;
    v.resize(n+2);
    for(int i(0); i < n;i++)cin >> color[i];
    for(int i(0); i < m;i++){
        int a,b; cin >> a >> b;
        a--;b--;
        if(color[a] == color[b])continue;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    for(int i(0); i < n;i++){
        dfs(i,0);
    }
    cout << ans;
    return 0;
}
/*
*/

컴파일 시 표준 에러 (stderr) 메시지

paths.cpp: In function 'void dfs(long long int, long long int)':
paths.cpp:25:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i(0); i < v[u].size();i++){
                   ~~^~~~~~~~~~~~~
paths.cpp: At global scope:
paths.cpp:32:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...