QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#418226 | #5420. Inscryption | XiaoretaW | WA | 165ms | 3620kb | C++20 | 1.6kb | 2024-05-23 11:54:45 | 2024-05-23 11:54:47 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define sz(a) ((int)a.size())
#define all(a) a.begin(), a.end()
#define rep(i, l, r) for (int i = l; i < r; ++i)
#define per(i, r, l) for (int i = r-1; i >= l; --i)
typedef long long ll;
typedef pair<int, int> PI;
template<typename T> bool setmax(T &a, T b) { return (a < b ? a = b, 1 : 0); }
template<typename T> bool setmin(T &a, T b) { return (a > b ? a = b, 1 : 0); }
#define print(a) cerr << "[ "; for (auto it : a) cerr << it << ", "; cerr << "]\n";
void solve() {
int n; cin >> n;
vector<int> a(n + 1);
for (int i = 1; i <= n; i++) cin >> a[i];
vector<int> cur{1};
int cnt = 0;
for (int i = 1; i <= n; i++) {
if (a[i] == 1) {
cur.push_back(1);
} else if (a[i] == -1) {
if (sz(cur) < 2) {
cout << -1 << '\n';
return;
}
cur[0] += cur.back();
cur.pop_back();
} else {
++cnt;
cur.push_back(1);
}
}
int up = accumulate(all(cur), 0);
int down = sz(cur);
// cerr << "??? " << up << ' ' << down << '\n';
// print(cur);
while (cnt && down - 2 >= 1) {
--cnt;
down -= 2;
--up;
}
cout << (up / gcd(up, down)) << ' ' << (down / gcd(up, down)) << '\n';
}
int main() {
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int tt; cin >> tt;
while (tt--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3560kb
input:
6 7 1 1 1 -1 1 1 -1 4 1 0 -1 0 4 0 -1 -1 0 1 0 2 0 0 1 -1
output:
3 2 3 1 -1 1 1 2 1 -1
result:
ok 6 lines
Test #2:
score: 0
Accepted
time: 165ms
memory: 3556kb
input:
1000000 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 -1 1 0 1 0 1 1 1 0 1 -1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 -1 1 1 1 1 1 -1 1 0 1 1 1 0 1 -1 1 0 1 -1 1 1 1 -1 1 0 1 1 1 1 1 -1 1 0 1 -1 1 -1 1 -1 1 -1 1 0 1 0 1 -1 1 0 1 -1 1 0 1 0 1 0 1 0 1 0 1 -1 1 1 1 0 1 0 1 1 1 0 1 -1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 ...
output:
1 1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 -1 1 1 1 1 1 1 -1 1 1 -1 1 1 -1 1 1 1 1 1 1 -1 1 1 -1 -1 -1 -1 1 1 1 1 -1 1 1 -1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 -1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 ...
result:
ok 1000000 lines
Test #3:
score: -100
Wrong Answer
time: 73ms
memory: 3620kb
input:
181249 6 1 0 -1 0 1 0 4 1 -1 -1 -1 8 -1 0 0 0 1 -1 1 1 3 0 1 0 6 1 0 -1 1 -1 0 4 1 -1 -1 -1 9 0 1 0 -1 -1 0 -1 0 1 1 -1 3 0 -1 1 5 0 0 1 -1 1 3 1 -1 0 6 -1 0 0 -1 0 1 8 1 -1 -1 -1 0 1 -1 0 2 0 0 3 -1 1 0 3 0 -1 -1 10 0 1 0 -1 1 1 0 -1 1 0 3 1 0 0 9 1 -1 1 -1 0 -1 0 0 0 3 0 1 0 3 -1 0 0 7 -1 0 -1 -1 ...
output:
4 1 -1 -1 3 2 4 1 -1 3 1 -1 3 2 2 1 3 2 -1 -1 2 1 -1 -1 6 1 3 2 3 1 3 2 -1 -1 -1 -1 2 1 5 3 -1 2 1 2 1 -1 3 2 5 1 1 1 -1 3 2 -1 1 1 -1 2 1 1 1 -1 1 1 -1 1 1 3 2 -1 -1 -1 -1 3 2 5 2 1 1 -1 3 1 -1 -1 1 1 -1 6 1 3 2 -1 3 2 4 3 2 1 -1 5 3 3 1 6 1 -1 2 1 2 1 -1 1 1 -1 3 1 -1 -1 4 1 1 1 2 1 5 2 -1 3 1 3 1...
result:
wrong answer 28th lines differ - expected: '5 4', found: '2 1'