답안 #36860

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
36860 2017-12-16T08:24:03 Z szawinis Dojave (COCI17_dojave) C++14
70 / 140
4000 ms 11232 KB
#include <bits/stdc++.h>
using namespace std;
const int N = (1 << 20) + 1;

int m, n, ans, a[N], s[N];
bool mark[N];
int main() {
	scanf("%d", &m);
	if(m == 1) printf("2"), exit(0);
	n = 1 << m;
	ans = n*(n+1) / 2;
	for(int i = 1; i <= n; i++) {
		scanf("%d", a+i);
		s[i] = s[i-1] ^ a[i];
	}
	for(int i = 1; i <= n; i++) {
		int cnt = 0;
		for(int j = i; j <= n; j++) {
			mark[a[j]] = true;
			cnt += mark[a[j] ^ (n-1)];
			if(s[j] ^ s[i-1] || (j-i+1) % 4) continue;

			if(cnt == j-i+1 >> 1) --ans;
		}
		for(int j = i; j <= n; j++) mark[a[j]] = false;
	}
	printf("%d", ans);
}

Compilation message

dojave.cpp: In function 'int main()':
dojave.cpp:23:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
    if(cnt == j-i+1 >> 1) --ans;
                 ^
dojave.cpp:8:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &m);
                 ^
dojave.cpp:13:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", a+i);
                   ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 11232 KB Output is correct
2 Correct 0 ms 11232 KB Output is correct
3 Correct 0 ms 11232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 11232 KB Output is correct
2 Correct 0 ms 11232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 26 ms 11232 KB Output is correct
2 Correct 23 ms 11232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 96 ms 11232 KB Output is correct
2 Correct 109 ms 11232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 336 ms 11232 KB Output is correct
2 Correct 416 ms 11232 KB Output is correct
3 Correct 393 ms 11232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4000 ms 11232 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4000 ms 11232 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4000 ms 11232 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4000 ms 11232 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4000 ms 11232 KB Execution timed out
2 Halted 0 ms 0 KB -