# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
568544 | 2022-05-25T16:38:03 Z | Waratpp123 | Plus Minus (BOI17_plusminus) | C++14 | 62 ms | 13260 KB |
#include<bits/stdc++.h> using namespace std; char a[100010]; long long pi[100010],pj[100010],mod=1000000007; unordered_map<long long,long long> mi,mj; long long p(long long i){ if(i==0) return 1; long long t=p(i/2); if(i%2==0) return (t*t)%mod; return (((2*t)%mod)*t)%mod; } int main(){ long long i,j,n,m,k,ch0=0,ch1=0; long long ans=0,cnt=0; scanf("%lld %lld %lld",&n,&m,&k); for(i=1;i<=k;i++){ scanf(" %c %lld %lld",&a[i],&pi[i],&pj[i]); if(a[i]=='+'){ if((pi[i]+pj[i])%2==0) ch0=1; else ch1=1; }else{ if((pi[i]+pj[i])%2==0) ch1=1; else ch0=1; } } for(i=1;i<=k;i++){ if(a[i]=='+'){ if(mi[pi[i]]==0){ mi[pi[i]]=1+(pj[i]%2); cnt++; }else{ if(mi[pi[i]]!=(1+(pj[i]%2))){ cnt=-1; break; } } }else{ if(mi[pi[i]]==0){ mi[pi[i]]=1+(1-pj[i]%2); cnt++; }else{ if(mi[pi[i]]!=(1+(1-pj[i]%2))){ cnt=-1; break; } } } } if(cnt!=-1) ans=(ans+(p(n-cnt)))%mod; cnt=0; for(i=1;i<=k;i++){ if(a[i]=='+'){ if(mj[pj[i]]==0){ mj[pj[i]]=1+(pi[i]%2); cnt++; }else{ if(mj[pj[i]]!=(1+(pi[i]%2))){ cnt=-1; break; } } }else{ if(mj[pj[i]]==0){ mj[pj[i]]=1+(1-pi[i]%2); cnt++; }else{ if(mj[pj[i]]!=(1+(1-pi[i]%2))){ cnt=-1; break; } } } } if(cnt!=-1) ans=(ans+(p(m-cnt)))%mod; if(ch1==0) ans=(ans+mod-1)%mod; if(ch0==0) ans=(ans+mod-1)%mod; printf("%lld\n",ans); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 1 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 304 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 308 KB | Output is correct |
8 | Correct | 0 ms | 212 KB | Output is correct |
9 | Correct | 0 ms | 212 KB | Output is correct |
10 | Correct | 0 ms | 308 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 1 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 304 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 308 KB | Output is correct |
8 | Correct | 0 ms | 212 KB | Output is correct |
9 | Correct | 0 ms | 212 KB | Output is correct |
10 | Correct | 0 ms | 308 KB | Output is correct |
11 | Correct | 1 ms | 340 KB | Output is correct |
12 | Correct | 0 ms | 212 KB | Output is correct |
13 | Correct | 0 ms | 212 KB | Output is correct |
14 | Correct | 1 ms | 340 KB | Output is correct |
15 | Correct | 1 ms | 340 KB | Output is correct |
16 | Correct | 24 ms | 2904 KB | Output is correct |
17 | Correct | 26 ms | 2888 KB | Output is correct |
18 | Correct | 25 ms | 2828 KB | Output is correct |
19 | Correct | 26 ms | 2904 KB | Output is correct |
20 | Correct | 28 ms | 2892 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 1 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 304 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 308 KB | Output is correct |
8 | Correct | 0 ms | 212 KB | Output is correct |
9 | Correct | 0 ms | 212 KB | Output is correct |
10 | Correct | 0 ms | 308 KB | Output is correct |
11 | Correct | 1 ms | 340 KB | Output is correct |
12 | Correct | 0 ms | 212 KB | Output is correct |
13 | Correct | 0 ms | 212 KB | Output is correct |
14 | Correct | 1 ms | 340 KB | Output is correct |
15 | Correct | 1 ms | 340 KB | Output is correct |
16 | Correct | 24 ms | 2904 KB | Output is correct |
17 | Correct | 26 ms | 2888 KB | Output is correct |
18 | Correct | 25 ms | 2828 KB | Output is correct |
19 | Correct | 26 ms | 2904 KB | Output is correct |
20 | Correct | 28 ms | 2892 KB | Output is correct |
21 | Correct | 47 ms | 8380 KB | Output is correct |
22 | Correct | 1 ms | 212 KB | Output is correct |
23 | Correct | 29 ms | 3224 KB | Output is correct |
24 | Correct | 27 ms | 3328 KB | Output is correct |
25 | Correct | 27 ms | 3320 KB | Output is correct |
26 | Correct | 40 ms | 7068 KB | Output is correct |
27 | Correct | 38 ms | 7176 KB | Output is correct |
28 | Correct | 45 ms | 8788 KB | Output is correct |
29 | Correct | 51 ms | 9932 KB | Output is correct |
30 | Correct | 62 ms | 13260 KB | Output is correct |