답안 #68736

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
68736 2018-08-18T10:07:56 Z tmwilliamlin168 Snake Escaping (JOI18_snake_escaping) C++17
12 / 100
391 ms 66560 KB
#include <bits/stdc++.h>
using namespace std;

const int mxL=20, mxQ=1e6;
int l, q, dp[2][1<<mxL];
string s;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	cin >> l >> q >> s;
	for(int j=0; j<2; ++j) {
		for(int i=0; i<1<<l; ++i)
			dp[j][i]=s[i]-'0';
		for(int k=0; k<l; ++k)
			for(int i=0; i<1<<l; ++i)
				if(i>>k&1^j)
					dp[j][i]+=dp[j][i^1<<k];
	}
	while(q--) {
		string t;
		cin >> t;
		int na=0, nb=0, nc=0, ma=0, mb=0, mc=0, ans=0;
		for(int i=0; i<l; ++i) {
			if(t[i]=='0') {
				++na;
				ma|=1<<(l-1-i);
			} else if(t[i]=='1') {
				++nb;
				mb|=1<<(l-1-i);
			} else {
				++nc;
				mc|=1<<(l-1-i);
			}
		}
		if(na<nc||nb<nc) {
			bool sw=0;
			if(nb>na) {
				swap(nb, na);
				swap(mb, ma);
				sw=1;
			}
			for(int i=mb; ; i=(i-1)&mb) {
				ans+=dp[sw][(sw?(1<<l)-1:0)^i^mb^mc]*(__builtin_popcount(i)&1?-1:1);
				if(!i)
					break;
			}
		} else {
			for(int i=mc; ; i=(i-1)&mc) {
				ans+=s[i|mb]-'0';
				if(!i)
					break;
			}
		}
		cout << ans << "\n";
	}
}

Compilation message

snake_escaping.cpp: In function 'int main()':
snake_escaping.cpp:18:12: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
     if(i>>k&1^j)
        ~~~~^~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Correct 3 ms 688 KB Output is correct
4 Correct 3 ms 688 KB Output is correct
5 Correct 3 ms 688 KB Output is correct
6 Correct 3 ms 688 KB Output is correct
7 Correct 4 ms 688 KB Output is correct
8 Correct 3 ms 688 KB Output is correct
9 Correct 2 ms 704 KB Output is correct
10 Correct 3 ms 704 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Correct 3 ms 688 KB Output is correct
4 Correct 3 ms 688 KB Output is correct
5 Correct 3 ms 688 KB Output is correct
6 Correct 3 ms 688 KB Output is correct
7 Correct 4 ms 688 KB Output is correct
8 Correct 3 ms 688 KB Output is correct
9 Correct 2 ms 704 KB Output is correct
10 Correct 3 ms 704 KB Output is correct
11 Correct 280 ms 15224 KB Output is correct
12 Correct 277 ms 17428 KB Output is correct
13 Correct 316 ms 17428 KB Output is correct
14 Correct 299 ms 17428 KB Output is correct
15 Correct 260 ms 18336 KB Output is correct
16 Correct 332 ms 18336 KB Output is correct
17 Correct 388 ms 19600 KB Output is correct
18 Correct 210 ms 21176 KB Output is correct
19 Correct 262 ms 21176 KB Output is correct
20 Correct 283 ms 21176 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Correct 3 ms 688 KB Output is correct
4 Correct 3 ms 688 KB Output is correct
5 Correct 3 ms 688 KB Output is correct
6 Correct 3 ms 688 KB Output is correct
7 Correct 4 ms 688 KB Output is correct
8 Correct 3 ms 688 KB Output is correct
9 Correct 2 ms 704 KB Output is correct
10 Correct 3 ms 704 KB Output is correct
11 Correct 280 ms 15224 KB Output is correct
12 Correct 277 ms 17428 KB Output is correct
13 Correct 316 ms 17428 KB Output is correct
14 Correct 299 ms 17428 KB Output is correct
15 Correct 260 ms 18336 KB Output is correct
16 Correct 332 ms 18336 KB Output is correct
17 Correct 388 ms 19600 KB Output is correct
18 Correct 210 ms 21176 KB Output is correct
19 Correct 262 ms 21176 KB Output is correct
20 Correct 283 ms 21176 KB Output is correct
21 Correct 299 ms 21176 KB Output is correct
22 Correct 295 ms 21176 KB Output is correct
23 Correct 362 ms 21176 KB Output is correct
24 Correct 356 ms 21176 KB Output is correct
25 Correct 310 ms 21176 KB Output is correct
26 Correct 391 ms 21176 KB Output is correct
27 Correct 373 ms 21176 KB Output is correct
28 Correct 212 ms 35880 KB Output is correct
29 Correct 298 ms 45752 KB Output is correct
30 Correct 292 ms 61544 KB Output is correct
31 Runtime error 342 ms 66560 KB Memory limit exceeded: We have a known bug that the memory usage is measured incorrectly (possibly because of Meltdown/Spectre patch), so your solution may be correct. Please submit again. Sorry for the inconvenience.
32 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Correct 3 ms 688 KB Output is correct
4 Correct 3 ms 688 KB Output is correct
5 Correct 3 ms 688 KB Output is correct
6 Correct 3 ms 688 KB Output is correct
7 Correct 4 ms 688 KB Output is correct
8 Correct 3 ms 688 KB Output is correct
9 Correct 2 ms 704 KB Output is correct
10 Correct 3 ms 704 KB Output is correct
11 Runtime error 121 ms 66560 KB Memory limit exceeded: We have a known bug that the memory usage is measured incorrectly (possibly because of Meltdown/Spectre patch), so your solution may be correct. Please submit again. Sorry for the inconvenience.
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Correct 3 ms 688 KB Output is correct
4 Correct 3 ms 688 KB Output is correct
5 Correct 3 ms 688 KB Output is correct
6 Correct 3 ms 688 KB Output is correct
7 Correct 4 ms 688 KB Output is correct
8 Correct 3 ms 688 KB Output is correct
9 Correct 2 ms 704 KB Output is correct
10 Correct 3 ms 704 KB Output is correct
11 Correct 280 ms 15224 KB Output is correct
12 Correct 277 ms 17428 KB Output is correct
13 Correct 316 ms 17428 KB Output is correct
14 Correct 299 ms 17428 KB Output is correct
15 Correct 260 ms 18336 KB Output is correct
16 Correct 332 ms 18336 KB Output is correct
17 Correct 388 ms 19600 KB Output is correct
18 Correct 210 ms 21176 KB Output is correct
19 Correct 262 ms 21176 KB Output is correct
20 Correct 283 ms 21176 KB Output is correct
21 Correct 299 ms 21176 KB Output is correct
22 Correct 295 ms 21176 KB Output is correct
23 Correct 362 ms 21176 KB Output is correct
24 Correct 356 ms 21176 KB Output is correct
25 Correct 310 ms 21176 KB Output is correct
26 Correct 391 ms 21176 KB Output is correct
27 Correct 373 ms 21176 KB Output is correct
28 Correct 212 ms 35880 KB Output is correct
29 Correct 298 ms 45752 KB Output is correct
30 Correct 292 ms 61544 KB Output is correct
31 Runtime error 342 ms 66560 KB Memory limit exceeded: We have a known bug that the memory usage is measured incorrectly (possibly because of Meltdown/Spectre patch), so your solution may be correct. Please submit again. Sorry for the inconvenience.
32 Halted 0 ms 0 KB -