Submission #93805

#TimeUsernameProblemLanguageResultExecution timeMemory
93805kjain_1810Shell (info1cup18_shell)C++17
0 / 100
8 ms8312 KiB
#include <bits/stdc++.h> #define pb push_back #define f first #define s second #define ind(a) scanf("%d", &a) #define inlld(a) scanf("%lld", &a) #define ind2(a, b) scanf("%d%d", &a, &b) #define inlld2(a, b) scanf("%lld%lld", &a, &b) #define ind3(a, b, c) scanf("%d%d%d", &a, &b, &c) #define inlld3(a, b, c) scanf("%lld%lld%lld", &a, &b, &c) using namespace std; const int N=1e3+5; const int MOD=1e9+7; typedef long long ll; typedef long double ld; ll n, m, p, arr[N], dp[N][N]; vector<ll>adj[N]; ll solve(ll i, ll j) { if(i==n) return j==p; if(dp[i][j]!=-1) return dp[i][j]; ll ret=0; for(ll a=0; a<adj[i].size(); a++) { ll v=adj[i][a]; if(v==arr[j+1]) ret=(ret+solve(v, j+1))%MOD; else ret=(ret+solve(v, j))%MOD; } return dp[i][j]=ret; } int main() { inlld3(n, m, p); for(ll a=1; a<=p; a++) inlld(arr[a]); p++; arr[p]=n; while(m--) { ll u, v; inlld2(u, v); adj[u].pb(v); } memset(dp, -1, sizeof(dp)); printf("%lld\n", solve(1, 0)); return 0; }

Compilation message (stderr)

shell.cpp: In function 'll solve(ll, ll)':
shell.cpp:30:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(ll a=0; a<adj[i].size(); a++)
                 ~^~~~~~~~~~~~~~
shell.cpp: In function 'int main()':
shell.cpp:10:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define inlld3(a, b, c) scanf("%lld%lld%lld", &a, &b, &c)
                         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
shell.cpp:43:5: note: in expansion of macro 'inlld3'
     inlld3(n, m, p);
     ^~~~~~
shell.cpp:6:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define inlld(a) scanf("%lld", &a)
                  ~~~~~^~~~~~~~~~~~
shell.cpp:45:9: note: in expansion of macro 'inlld'
         inlld(arr[a]);
         ^~~~~
shell.cpp:8:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define inlld2(a, b) scanf("%lld%lld", &a, &b)
                      ~~~~~^~~~~~~~~~~~~~~~~~~~
shell.cpp:51:9: note: in expansion of macro 'inlld2'
         inlld2(u, v);
         ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...