Submission #1077442

# Submission time Handle Problem Language Result Execution time Memory
1077442 2024-08-27T07:16:45 Z Faisal_Saqib Digital Circuit (IOI22_circuit) C++17
18 / 100
3000 ms 15432 KB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll NP=1e5+100,mod=1e9+2022;
ll n,m,p[NP],a[NP];
vector<ll> ma[NP];
ll dp[NP][2];
void compute(int x,bool recur=1)
{
	dp[x][0]=dp[x][1]=0;
	if(n<=x){
		dp[x][a[x-n]]=1;
		return;
	}
	int sz=ma[x].size();
	vector<int> tmp(sz+1);
	tmp[0]=1;
	for(auto y:ma[x])
	{
		if(recur)
			compute(y);
		for(int j=sz;j>=0;j--)
		{
			if(j==0)
			{
				tmp[j]=(tmp[j]*dp[y][0])%mod;
			}
			else
			{
				tmp[j]=(tmp[j]*dp[y][0])%mod;
				tmp[j]=(tmp[j] + ((tmp[j-1]*dp[y][1])%mod))%mod;
			}
		}
	}
	int sm=0;
	for(int j=sz;j>=1;j--)
	{
		sm = ( sm + tmp[j] ) % mod;
		dp[x][1] = ( dp[x][1] + sm ) % mod;
	}
	sm=tmp[0];
	for(int j=1;j<=sz;j++)
	{
		dp[x][0] = ( dp[x][0] + sm ) % mod;
		sm = ( sm + tmp[j] ) % mod;
	}
}
bool subtask=1;
void init(int N, int M, std::vector<int> P, std::vector<int> A)
{
	n=N,m=M;
	for(ll i=0;i<n+m;i++)
	{
		p[i]=P[i];
		if(p[i]!=-1)ma[p[i]].push_back(i),subtask&=((p[i]==((i-1)/2)));
	}
	for(ll j=0;j<m;j++)a[j]=A[j];
	compute(0);
}

int count_ways(int L, int R)
{
	for(ll i=L-n;i<=R-n;i++)a[i]=(a[i]?0:1);
	if(L==R)
	{
		int x=L;
		while(x>=0)
		{
			compute(x,0);
			x=p[x];
		}
	}
	else
	{
		compute(0);
	}
	return (int)dp[0][1];
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 2 ms 2648 KB Output is correct
3 Correct 22 ms 2648 KB Output is correct
4 Correct 24 ms 2648 KB Output is correct
5 Correct 24 ms 2648 KB Output is correct
6 Correct 23 ms 2648 KB Output is correct
7 Correct 24 ms 2648 KB Output is correct
8 Correct 24 ms 2648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2648 KB Output is correct
2 Correct 1 ms 2648 KB Output is correct
3 Correct 2 ms 2648 KB Output is correct
4 Correct 2 ms 2644 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 2 ms 2648 KB Output is correct
7 Correct 2 ms 2904 KB Output is correct
8 Correct 2 ms 2904 KB Output is correct
9 Correct 2 ms 2904 KB Output is correct
10 Correct 2 ms 2904 KB Output is correct
11 Correct 2 ms 2904 KB Output is correct
12 Correct 2 ms 2648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 2 ms 2648 KB Output is correct
3 Correct 22 ms 2648 KB Output is correct
4 Correct 24 ms 2648 KB Output is correct
5 Correct 24 ms 2648 KB Output is correct
6 Correct 23 ms 2648 KB Output is correct
7 Correct 24 ms 2648 KB Output is correct
8 Correct 24 ms 2648 KB Output is correct
9 Correct 2 ms 2648 KB Output is correct
10 Correct 1 ms 2648 KB Output is correct
11 Correct 2 ms 2648 KB Output is correct
12 Correct 2 ms 2644 KB Output is correct
13 Correct 2 ms 2648 KB Output is correct
14 Correct 2 ms 2648 KB Output is correct
15 Correct 2 ms 2904 KB Output is correct
16 Correct 2 ms 2904 KB Output is correct
17 Correct 2 ms 2904 KB Output is correct
18 Correct 2 ms 2904 KB Output is correct
19 Correct 2 ms 2904 KB Output is correct
20 Correct 2 ms 2648 KB Output is correct
21 Correct 2 ms 2648 KB Output is correct
22 Correct 2 ms 2648 KB Output is correct
23 Correct 2 ms 2648 KB Output is correct
24 Correct 2 ms 2904 KB Output is correct
25 Correct 2 ms 2904 KB Output is correct
26 Correct 3 ms 2904 KB Output is correct
27 Correct 2 ms 2904 KB Output is correct
28 Correct 2 ms 2904 KB Output is correct
29 Correct 24 ms 2672 KB Output is correct
30 Correct 23 ms 2644 KB Output is correct
31 Correct 2 ms 2904 KB Output is correct
32 Correct 3 ms 2904 KB Output is correct
33 Correct 2 ms 2648 KB Output is correct
34 Correct 2 ms 2648 KB Output is correct
35 Correct 6 ms 2648 KB Output is correct
36 Correct 2 ms 2904 KB Output is correct
37 Correct 23 ms 2904 KB Output is correct
38 Correct 24 ms 2904 KB Output is correct
39 Correct 2 ms 2648 KB Output is correct
40 Correct 2 ms 2648 KB Output is correct
41 Correct 2 ms 2648 KB Output is correct
42 Correct 3 ms 2648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 538 ms 6232 KB Output is correct
2 Runtime error 24 ms 15432 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 538 ms 6232 KB Output is correct
2 Runtime error 24 ms 15432 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2648 KB Output is correct
2 Correct 1 ms 2648 KB Output is correct
3 Correct 2 ms 2648 KB Output is correct
4 Correct 2 ms 2644 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 2 ms 2648 KB Output is correct
7 Correct 2 ms 2904 KB Output is correct
8 Correct 2 ms 2904 KB Output is correct
9 Correct 2 ms 2904 KB Output is correct
10 Correct 2 ms 2904 KB Output is correct
11 Correct 2 ms 2904 KB Output is correct
12 Correct 2 ms 2648 KB Output is correct
13 Correct 538 ms 6232 KB Output is correct
14 Runtime error 24 ms 15432 KB Execution killed with signal 11
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 2 ms 2648 KB Output is correct
3 Correct 22 ms 2648 KB Output is correct
4 Correct 24 ms 2648 KB Output is correct
5 Correct 24 ms 2648 KB Output is correct
6 Correct 23 ms 2648 KB Output is correct
7 Correct 24 ms 2648 KB Output is correct
8 Correct 24 ms 2648 KB Output is correct
9 Correct 2 ms 2648 KB Output is correct
10 Correct 1 ms 2648 KB Output is correct
11 Correct 2 ms 2648 KB Output is correct
12 Correct 2 ms 2644 KB Output is correct
13 Correct 2 ms 2648 KB Output is correct
14 Correct 2 ms 2648 KB Output is correct
15 Correct 2 ms 2904 KB Output is correct
16 Correct 2 ms 2904 KB Output is correct
17 Correct 2 ms 2904 KB Output is correct
18 Correct 2 ms 2904 KB Output is correct
19 Correct 2 ms 2904 KB Output is correct
20 Correct 2 ms 2648 KB Output is correct
21 Correct 2 ms 2648 KB Output is correct
22 Correct 2 ms 2648 KB Output is correct
23 Correct 2 ms 2648 KB Output is correct
24 Correct 2 ms 2904 KB Output is correct
25 Correct 2 ms 2904 KB Output is correct
26 Correct 3 ms 2904 KB Output is correct
27 Correct 2 ms 2904 KB Output is correct
28 Correct 2 ms 2904 KB Output is correct
29 Correct 24 ms 2672 KB Output is correct
30 Correct 23 ms 2644 KB Output is correct
31 Correct 2 ms 2904 KB Output is correct
32 Correct 3 ms 2904 KB Output is correct
33 Correct 2 ms 2648 KB Output is correct
34 Correct 2 ms 2648 KB Output is correct
35 Correct 6 ms 2648 KB Output is correct
36 Correct 2 ms 2904 KB Output is correct
37 Correct 23 ms 2904 KB Output is correct
38 Correct 24 ms 2904 KB Output is correct
39 Correct 2 ms 2648 KB Output is correct
40 Correct 2 ms 2648 KB Output is correct
41 Correct 2 ms 2648 KB Output is correct
42 Correct 3 ms 2648 KB Output is correct
43 Execution timed out 3010 ms 2904 KB Time limit exceeded
44 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 2 ms 2648 KB Output is correct
3 Correct 22 ms 2648 KB Output is correct
4 Correct 24 ms 2648 KB Output is correct
5 Correct 24 ms 2648 KB Output is correct
6 Correct 23 ms 2648 KB Output is correct
7 Correct 24 ms 2648 KB Output is correct
8 Correct 24 ms 2648 KB Output is correct
9 Correct 2 ms 2648 KB Output is correct
10 Correct 1 ms 2648 KB Output is correct
11 Correct 2 ms 2648 KB Output is correct
12 Correct 2 ms 2644 KB Output is correct
13 Correct 2 ms 2648 KB Output is correct
14 Correct 2 ms 2648 KB Output is correct
15 Correct 2 ms 2904 KB Output is correct
16 Correct 2 ms 2904 KB Output is correct
17 Correct 2 ms 2904 KB Output is correct
18 Correct 2 ms 2904 KB Output is correct
19 Correct 2 ms 2904 KB Output is correct
20 Correct 2 ms 2648 KB Output is correct
21 Correct 2 ms 2648 KB Output is correct
22 Correct 2 ms 2648 KB Output is correct
23 Correct 2 ms 2648 KB Output is correct
24 Correct 2 ms 2904 KB Output is correct
25 Correct 2 ms 2904 KB Output is correct
26 Correct 3 ms 2904 KB Output is correct
27 Correct 2 ms 2904 KB Output is correct
28 Correct 2 ms 2904 KB Output is correct
29 Correct 24 ms 2672 KB Output is correct
30 Correct 23 ms 2644 KB Output is correct
31 Correct 2 ms 2904 KB Output is correct
32 Correct 3 ms 2904 KB Output is correct
33 Correct 2 ms 2648 KB Output is correct
34 Correct 2 ms 2648 KB Output is correct
35 Correct 6 ms 2648 KB Output is correct
36 Correct 2 ms 2904 KB Output is correct
37 Correct 23 ms 2904 KB Output is correct
38 Correct 24 ms 2904 KB Output is correct
39 Correct 2 ms 2648 KB Output is correct
40 Correct 2 ms 2648 KB Output is correct
41 Correct 2 ms 2648 KB Output is correct
42 Correct 3 ms 2648 KB Output is correct
43 Correct 538 ms 6232 KB Output is correct
44 Runtime error 24 ms 15432 KB Execution killed with signal 11
45 Halted 0 ms 0 KB -