QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#820423 | #4617. Arithmetic Subsequence | SGColin | AC ✓ | 34ms | 4388kb | C++20 | 1.1kb | 2024-12-18 21:24:25 | 2024-12-18 21:24:25 |
Judging History
answer
#include <bits/stdc++.h>
//
#define var auto
#define let auto const
#define mid ((l + r) >> 1)
#define loop for (;;)
#define downTo(n) for (int it{n}; it; --it)
#define repeat(n) for (int it{1}, ed{n}; it <= ed; ++it)
typedef long long Int;
typedef long double real;
int i32() {
int a{}, b{}, sgn{};
for (; !isdigit(b); b = getchar()) sgn = b == '-';
for (; +isdigit(b); b = getchar()) a = a * 10 + b - '0';
return sgn ? -a : +a;
}
const int N = 5050;
int a[N];
int b[N];
int id[N];
void solve() {
let n = i32();
std::map<int, int> map;
repeat(n) map[a[it] = i32()]++;
for (let o: map)
if (o.second >= 3) {
puts("NO");
return;
}
repeat(n) {
b[it] = 0;
for (int i = 0; i < 30; ++i) {
if ((a[it] >> i) & 1)
b[it] += 1 << (29 - i);
}
}
puts("YES");
repeat(n) id[it] = it;
std::sort(id + 1, id + n + 1, [&](int x, int y) { return b[x] < b[y]; });
repeat(n) printf("%d%c", a[id[it]], " \n"[it == n]);
}
int main() {
repeat(i32()) {
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 34ms
memory: 4388kb
input:
25 4 3 6 8 9 5 1 1 1 1 1 5000 204869248 184063453 335277313 805198752 988635160 266844506 494544568 842685418 516257494 110006739 727397507 931812983 898605116 670474885 536302721 818724782 251547299 883494814 479828194 573135914 408419766 283100869 472145517 996777784 393702645 555881361 835407611 ...
output:
YES 8 6 9 3 NO YES 582103040 257054720 720724992 786444800 1815040 144378368 100567552 361720320 575314432 332195328 89164032 558150912 122244352 685571328 674378496 39983872 580401920 4005632 972075136 951912576 125479040 62466688 327248512 459315840 250903168 570091136 813373056 204869248 31187315...
result:
ok