답안 #317049

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
317049 2020-10-29T01:25:23 Z Kevin_Zhang_TW DEL13 (info1cup18_del13) C++17
12 / 100
7 ms 896 KB
#include<bits/stdc++.h>
#define pb emplace_back
#define AI(i) begin(i), end(i)
using namespace std;
using ll = long long;
#ifdef KEV
#define DE(args...) kout("[ " + string(#args) + " ] : ", args)
void kout() { cerr << endl; }
template<class T, class ...U>
void kout(T a, U ...b) { cerr << a << ' ', kout(b...); }
void debug(auto L, auto R) { while (L != R) cerr << *L << " \n"[next(L) == R], ++L; }
#else
#define debug(...) 0
#define DE(...) 0
#endif
const int MAX_N = 300010;
int len, m, p[MAX_N];
bool valid() {
	DE(len, m);
	if ((len ^ m) & 1)
		return false;
	++m;
	vector<int> dis;
	for (int i = 1;i <= m;++i)
		dis.pb(p[i]-p[i-1]-1);
	vector<bool> dp{true, false, false};
	auto ref = [&](int v) {
		return v&1 ? 1 : min(2, v);
	};
	DE(len, m);
	debug(AI(dis));
	for (int u : dis) {
		vector<bool> ne{false, false, false};
		if (u == 0) {
			if (!dp[0]) return false;
			dp = {true, false, false};
			continue;
		}

		if (dp[0])
			ne[ ref(u) ] = true;
		if (dp[1]) {
			if (u&1) {
				ne[0] = true;
				ne[2] = u > 2;
			}
			else {
				ne[1] = true;
			}
		}
		if (dp[2]) {
			if (u&1) {
				if (u > 2)
					ne[1] = true;
			}
			else {
				ne[0] = true;
				ne[2] = u > 2;
			}
		}
		swap(dp, ne);
	}
	return dp[0];

}
void solve() {
	cin >> len >> m;
	for (int i = 1;i <= m;++i)
		cin >> p[i];
	//cerr << "\n\n";
	p[m+1] = len+1;
	if (!valid()) 
		return cout << -1 << '\n', void();
	cout << 0 << '\n' << '\n' ;
}
int32_t main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	int T;
	cin >> T;
	while (T--)
		solve();
}

Compilation message

del13.cpp: In function 'bool valid()':
del13.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
del13.cpp:19:2: note: in expansion of macro 'DE'
   19 |  DE(len, m);
      |  ^~
del13.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
del13.cpp:30:2: note: in expansion of macro 'DE'
   30 |  DE(len, m);
      |  ^~
del13.cpp:13:20: warning: statement has no effect [-Wunused-value]
   13 | #define debug(...) 0
      |                    ^
del13.cpp:31:2: note: in expansion of macro 'debug'
   31 |  debug(AI(dis));
      |  ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is partially correct
2 Correct 1 ms 384 KB Output is partially correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is partially correct
2 Correct 1 ms 384 KB Output is partially correct
3 Incorrect 5 ms 384 KB Output isn't correct
4 Incorrect 5 ms 384 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is partially correct
2 Correct 2 ms 384 KB Output is partially correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is partially correct
2 Correct 1 ms 384 KB Output is partially correct
3 Incorrect 5 ms 384 KB Output isn't correct
4 Incorrect 5 ms 384 KB Output isn't correct
5 Incorrect 1 ms 384 KB Output isn't correct
6 Incorrect 1 ms 384 KB Output isn't correct
7 Incorrect 1 ms 384 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is partially correct
2 Correct 1 ms 384 KB Output is partially correct
3 Incorrect 5 ms 384 KB Output isn't correct
4 Incorrect 5 ms 384 KB Output isn't correct
5 Incorrect 1 ms 384 KB Output isn't correct
6 Incorrect 1 ms 384 KB Output isn't correct
7 Incorrect 1 ms 384 KB Output isn't correct
8 Incorrect 6 ms 384 KB Output isn't correct
9 Incorrect 7 ms 640 KB Output isn't correct
10 Incorrect 6 ms 684 KB Output isn't correct
11 Incorrect 5 ms 896 KB Output isn't correct