답안 #715031

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
715031 2023-03-25T21:02:29 Z TheConverseEngineer Vepar (COCI21_vepar) C++17
0 / 70
57 ms 39444 KB
#include <bits/stdc++.h>
using namespace std;

#define FOR(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
#define sqr(x) ((ll)(x))*(x)
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;



int T;

int factorsLeft[10000000];

inline bool test(int c, int d) {
	for (int i = c; i <= d; i++) {
		int x = i;
		while (x%2 == 0) { factorsLeft[2]--; x /= 2; if (factorsLeft[2] < 0) return false; }
		for (int factor = 3; (ll)factor*factor <= x; factor+=2) {
			while (x%factor == 0) { x /= factor; factorsLeft[factor]--; if (factorsLeft[factor] < 0) return false;}
		}
		if (x > 2) { 
			factorsLeft[x]--;
			if (factorsLeft[x] < 0) return false;
		}
	}
	return true;
}
int main() {
	cin.tie(0)->sync_with_stdio(0);

	cin >> T;

	FOR(testcase, 0, T) {
		FOR(i, 0, 10000000) factorsLeft[i] = 0;
		int a, b, c, d; cin >> a >> b >> c >> d;
		if (a >= c and b <= d) { cout << "DA\n"; continue; }
		if (a < c and b > d) { cout << "NE\n"; continue; }
		if (b > c) { int temp = b; b = c-1; c = temp+1;}
		if (d > a) { int temp = a; a = d+1; d = temp-1;}
		for (int i = c; i <= d; i++) {
			int x = i;
			while (x%2 == 0) { factorsLeft[2]++; x /= 2; }
			for (int factor = 3; (ll)factor*factor <= x; factor+=2) {
				while (x%factor == 0) { x /= factor; factorsLeft[factor]++;}
			}
			if (x > 2) factorsLeft[x]++;
		}
		cout << (test(a, b)?"DA":"NE") << "\n";
	}
	
	
} 
# 결과 실행 시간 메모리 Grader output
1 Incorrect 52 ms 39380 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 48 ms 39380 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 49 ms 39380 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 53 ms 39432 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 57 ms 39380 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 57 ms 39376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 50 ms 39444 KB Output isn't correct
2 Halted 0 ms 0 KB -