QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#284063 | #6636. Longest Strictly Increasing Sequence | Misuki | AC ✓ | 2ms | 3560kb | C++20 | 2.4kb | 2023-12-15 22:17:26 | 2023-12-15 22:17:27 |
Judging History
answer
#pragma GCC optimize("O2")
#include <algorithm>
#include <array>
#include <bit>
#include <bitset>
#include <cassert>
#include <cctype>
#include <cfenv>
#include <cfloat>
#include <chrono>
#include <cinttypes>
#include <climits>
#include <cmath>
#include <compare>
#include <complex>
#include <concepts>
#include <cstdarg>
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <fstream>
#include <functional>
#include <initializer_list>
#include <iomanip>
#include <ios>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numbers>
#include <numeric>
#include <ostream>
#include <queue>
#include <random>
#include <ranges>
#include <set>
#include <span>
#include <sstream>
#include <stack>
#include <streambuf>
#include <string>
#include <tuple>
#include <type_traits>
#include <variant>
#define int ll
#define INT128_MAX (__int128)(((unsigned __int128) 1 << ((sizeof(__int128) * __CHAR_BIT__) - 1)) - 1)
#define INT128_MIN (-INT128_MAX - 1)
namespace R = std::ranges;
namespace V = std::views;
using namespace std;
using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;
using pll = pair<long long, long long>;
using tiii = tuple<int, int, int>;
using ldb = long double;
//#define double ldb
template<class T>
ostream& operator<<(ostream& os, const pair<T, T> pr) {
return os << pr.first << ' ' << pr.second;
}
template<class T, size_t N>
ostream& operator<<(ostream& os, const array<T, N> &arr) {
for(const T &X : arr)
os << X << ' ';
return os;
}
template<class T>
ostream& operator<<(ostream& os, const vector<T> &vec) {
for(const T &X : vec)
os << X << ' ';
return os;
}
signed main() {
ios::sync_with_stdio(false), cin.tie(NULL);
int t; cin >> t;
while(t--) {
int n; cin >> n;
vector<int> b(n);
for(int &x : b)
cin >> x;
bool ok = b[0] == 1;
for(int i = 1; i < n; i++)
ok = ok and b[i] - b[i - 1] <= 1 and b[i] >= b[i - 1];
if (ok) {
vector<int> a(1, 1);
for(int i = 1; i < n; i++)
a.emplace_back(a.back() + (b[i] != b[i - 1]));
cout << "YES\n";
cout << a << '\n';
} else {
cout << "NO\n";
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3548kb
input:
2 6 1 2 3 2 5 7 2 1 2
output:
NO YES 1 2
result:
ok t=2 (2 test cases)
Test #2:
score: 0
Accepted
time: 2ms
memory: 3560kb
input:
3483 5 2 3 5 1 1 2 8 1 10 1 2 3 4 4 5 6 6 6 7 10 1 1 2 2 2 2 3 4 4 5 2 5 8 3 7 10 8 5 4 1 3 3 8 10 1 2 2 2 2 2 2 3 3 3 10 1 1 2 3 4 5 5 5 5 6 9 1 2 3 4 5 5 6 6 7 7 8 8 8 8 9 1 2 5 8 9 8 3 5 10 1 2 3 3 3 3 4 4 4 5 5 7 1 6 4 3 7 5 6 8 6 1 5 5 10 1 2 2 3 4 4 4 4 5 5 3 10 4 5 3 1 5 3 5 2 8 1 2 1 3 7 8 3...
output:
NO NO YES 1 2 3 4 4 5 6 6 6 7 YES 1 1 2 2 2 2 3 4 4 5 NO NO NO YES 1 2 2 2 2 2 2 3 3 3 YES 1 1 2 3 4 5 5 5 5 6 YES 1 2 3 4 5 5 6 6 7 NO NO YES 1 2 3 3 3 3 4 4 4 5 NO NO YES 1 2 2 3 4 4 4 4 5 5 NO NO NO NO NO NO YES 1 1 1 2 2 3 3 4 4 NO NO NO NO NO NO NO YES 1 2 3 3 3 4 4 4 5 5 YES 1 1 2 2 2...
result:
ok t=3483 (3483 test cases)