Submission #941746

#TimeUsernameProblemLanguageResultExecution timeMemory
941746dshfjkaPaths (BOI18_paths)C++14
100 / 100
333 ms117648 KiB
#include <bits/stdc++.h> #define LL long long const LL N=3e5; using namespace std; LL n,m,k; LL dp[N+5][35]; bool visited[N+5][35]; LL arr[N+5]; vector<LL>adj[N+5]; LL f(LL x, LL mask) { if(visited[x][mask])return dp[x][mask]; visited[x][mask]=1; LL &dyn = dp[x][mask]; dyn=1; for(LL a:adj[x]) { if(mask&(1<<arr[a]))continue; dyn+=f(a,mask+(1<<arr[a])); } return dyn; } int main() { scanf("%lld %lld %lld",&n,&m,&k); for(LL a=1;a<=n;a++) { scanf("%lld",&arr[a]); arr[a]--; } for(LL a=1;a<=m;a++) { LL x,y; scanf("%lld %lld",&x,&y); adj[x].push_back(y); adj[y].push_back(x); } LL res=0; for(LL a=1;a<=n;a++) { res+=f(a,1LL<<arr[a]); // printf("%lld : %lld\n",a,res); } printf("%lld\n",res-n); }

Compilation message (stderr)

paths.cpp: In function 'int main()':
paths.cpp:25:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |  scanf("%lld %lld %lld",&n,&m,&k);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
paths.cpp:28:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |   scanf("%lld",&arr[a]);
      |   ~~~~~^~~~~~~~~~~~~~~~
paths.cpp:34:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |   scanf("%lld %lld",&x,&y);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...