답안 #249165

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
249165 2020-07-14T12:53:21 Z blacktulip Shell (info1cup18_shell) C++17
55 / 100
1000 ms 52476 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long lo;
typedef pair< lo,lo > PII;

#define fi first
#define se second
#define mp make_pair
#define endl "\n"
#define pb push_back
#define int long long
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define FOR for(int i=1;i<=n;i++)
#define mid ((start+end)/2)
#define ort ((bas+son)/2)

const lo inf = 1000000000000000000;
const lo KOK = 100000;
const lo LOG = 30;
const lo li = 500005;
const lo mod = 1000000007;

int n,m,b[li],a[li],k,flag,t,dp[1505][1505];
int cev;
string s;
vector<int> v[li];

inline int add(int x,int y){
	if(x+y>=mod)return x+y-mod;
	return x+y;
}

inline int f(int sira,int num){
	int cevv=0;
	if(sira==n){
		if(num<=k)return 0;
		return 1;
	}
	if(~dp[sira][num])return dp[sira][num];
	for(int i=0;i<(int)v[sira].size();i++){
		int go=v[sira][i];
		cevv=add(cevv,f(go,num+(go==a[num]?1:0)));
	}
	return dp[sira][num]=cevv;
}

main(void){
	memset(dp,-1,sizeof(dp));
	scanf("%lld %lld %lld",&n,&m,&k);
	for(int i=1;i<=k;i++){
		scanf("%lld",&a[i]);
	}
	for(int i=1;i<=m;i++){
		int x,y;
		scanf("%lld %lld",&x,&y);
		v[x].pb(y);
	}
	printf("%lld\n",f(1,1+(a[1]==1?1:0)));
	return 0;
}

Compilation message

shell.cpp:49:10: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(void){
          ^
shell.cpp: In function 'int main()':
shell.cpp:51:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld %lld %lld",&n,&m,&k);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
shell.cpp:53:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld",&a[i]);
   ~~~~~^~~~~~~~~~~~~~
shell.cpp:57:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld %lld",&x,&y);
   ~~~~~^~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 29824 KB Output is correct
2 Correct 19 ms 29824 KB Output is correct
3 Correct 17 ms 29824 KB Output is correct
4 Correct 17 ms 29824 KB Output is correct
5 Correct 17 ms 29824 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 29824 KB Output is correct
2 Correct 19 ms 29824 KB Output is correct
3 Correct 17 ms 29824 KB Output is correct
4 Correct 17 ms 29824 KB Output is correct
5 Correct 17 ms 29824 KB Output is correct
6 Correct 16 ms 29824 KB Output is correct
7 Correct 44 ms 30332 KB Output is correct
8 Correct 38 ms 30080 KB Output is correct
9 Correct 27 ms 30464 KB Output is correct
10 Correct 27 ms 30336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 29824 KB Output is correct
2 Correct 668 ms 39504 KB Output is correct
3 Correct 127 ms 39544 KB Output is correct
4 Correct 127 ms 39480 KB Output is correct
5 Correct 151 ms 36216 KB Output is correct
6 Correct 258 ms 52472 KB Output is correct
7 Execution timed out 1089 ms 52476 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 29824 KB Output is correct
2 Correct 19 ms 29824 KB Output is correct
3 Correct 17 ms 29824 KB Output is correct
4 Correct 17 ms 29824 KB Output is correct
5 Correct 17 ms 29824 KB Output is correct
6 Correct 16 ms 29824 KB Output is correct
7 Correct 44 ms 30332 KB Output is correct
8 Correct 38 ms 30080 KB Output is correct
9 Correct 27 ms 30464 KB Output is correct
10 Correct 27 ms 30336 KB Output is correct
11 Correct 18 ms 29824 KB Output is correct
12 Correct 668 ms 39504 KB Output is correct
13 Correct 127 ms 39544 KB Output is correct
14 Correct 127 ms 39480 KB Output is correct
15 Correct 151 ms 36216 KB Output is correct
16 Correct 258 ms 52472 KB Output is correct
17 Execution timed out 1089 ms 52476 KB Time limit exceeded