# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
124806 | 2019-07-04T02:22:26 Z | model_code | Plus Minus (BOI17_plusminus) | C++17 | 214 ms | 9720 KB |
#include<cstdio> #include<iostream> #include<map> using namespace std; char flipsign(char c, int p) { if(p%2==0) return c; return c=='+' ? '-' : '+'; } long long pow2(int x) { if(x==0) return 1; long long a = pow2(x/2); a = ((a*a) * (x%2==1 ? 2 : 1)) % 1000000007; return a; } int main() { int n,m,k,x,y; scanf("%d%d%d",&n,&m,&k); map<int, char> H,V; bool canBeH = true, canBeV = true, canBePlusEvenMinusOdd = true, canBePlusOddMinusEven = true; for(int i = 0; i < k; ++i) { char c; scanf(" %c%d%d", &c, &y, &x); canBeH &= ((int)H[y] == 0) || H[y] == flipsign(c,x); canBeV &= ((int)V[x] == 0) || V[x] == flipsign(c,y); H[y] = flipsign(c,x); V[x] = flipsign(c,y); canBePlusEvenMinusOdd &= (c=='+' && (x+y)%2==0) || (c=='-' && (x+y)%2==1); canBePlusOddMinusEven &= (c=='+' && (x+y)%2==1) || (c=='-' && (x+y)%2==0); } long long ans = canBeH ? pow2(n-H.size()) : 0; ans += canBeV ? pow2(m-V.size()): 0; ans -= canBeH && canBeV && canBePlusEvenMinusOdd ? 1 : 0; ans -= canBeH && canBeV && canBePlusOddMinusEven ? 1 : 0; ans = ans % 1000000007; printf ("%lld\n", ans); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 380 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Correct | 2 ms | 376 KB | Output is correct |
7 | Correct | 2 ms | 376 KB | Output is correct |
8 | Correct | 2 ms | 376 KB | Output is correct |
9 | Correct | 2 ms | 376 KB | Output is correct |
10 | Correct | 2 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 380 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Correct | 2 ms | 376 KB | Output is correct |
7 | Correct | 2 ms | 376 KB | Output is correct |
8 | Correct | 2 ms | 376 KB | Output is correct |
9 | Correct | 2 ms | 376 KB | Output is correct |
10 | Correct | 2 ms | 376 KB | Output is correct |
11 | Correct | 3 ms | 376 KB | Output is correct |
12 | Correct | 2 ms | 376 KB | Output is correct |
13 | Correct | 2 ms | 376 KB | Output is correct |
14 | Correct | 3 ms | 376 KB | Output is correct |
15 | Correct | 3 ms | 376 KB | Output is correct |
16 | Correct | 79 ms | 448 KB | Output is correct |
17 | Correct | 79 ms | 448 KB | Output is correct |
18 | Correct | 79 ms | 376 KB | Output is correct |
19 | Correct | 79 ms | 508 KB | Output is correct |
20 | Correct | 78 ms | 504 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 380 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Correct | 2 ms | 376 KB | Output is correct |
7 | Correct | 2 ms | 376 KB | Output is correct |
8 | Correct | 2 ms | 376 KB | Output is correct |
9 | Correct | 2 ms | 376 KB | Output is correct |
10 | Correct | 2 ms | 376 KB | Output is correct |
11 | Correct | 3 ms | 376 KB | Output is correct |
12 | Correct | 2 ms | 376 KB | Output is correct |
13 | Correct | 2 ms | 376 KB | Output is correct |
14 | Correct | 3 ms | 376 KB | Output is correct |
15 | Correct | 3 ms | 376 KB | Output is correct |
16 | Correct | 79 ms | 448 KB | Output is correct |
17 | Correct | 79 ms | 448 KB | Output is correct |
18 | Correct | 79 ms | 376 KB | Output is correct |
19 | Correct | 79 ms | 508 KB | Output is correct |
20 | Correct | 78 ms | 504 KB | Output is correct |
21 | Correct | 162 ms | 5920 KB | Output is correct |
22 | Correct | 2 ms | 256 KB | Output is correct |
23 | Correct | 165 ms | 6008 KB | Output is correct |
24 | Correct | 158 ms | 6008 KB | Output is correct |
25 | Correct | 170 ms | 5920 KB | Output is correct |
26 | Correct | 170 ms | 8184 KB | Output is correct |
27 | Correct | 170 ms | 8244 KB | Output is correct |
28 | Correct | 168 ms | 8184 KB | Output is correct |
29 | Correct | 161 ms | 8320 KB | Output is correct |
30 | Correct | 214 ms | 9720 KB | Output is correct |