QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#587979 | #5653. Library game | Nanani | RE | 0ms | 0kb | C++20 | 2.1kb | 2024-09-24 23:14:53 | 2024-09-24 23:14:54 |
answer
//by 72
#include<bits/stdc++.h>
#define F(i, a, b) for(int i = a; i <= b; i ++)
#define Fd(i, a, b) for(int i = a; i >= b; i --)
#define pb push_back
#define pii pair<int, int>
#define fi first
#define se second
#define int long long
using namespace std;
const int mod = 998244353;
const int N = 2e5 + 10;
const int inf = 1e18;
typedef array<int, 3> a3;
typedef long long ll;
int n, m, x[N], vst[N];
void sol() {
cin >> n >> m;
F(i, 1, n) cin >> x[i];
sort(x + 1, x + 1 + n);
reverse(x + 1, x + 1 + n);
int ok = -1;
F(i, 1, n) {
if((n - 1) / i + 1 < x[i]) ok = i;
}
set<pii> s;
s.insert({m, 1});
if(ok == -1) {
cout << "Alessia" << endl;
cout << flush;
F(i, 1, n) {
pii now = {-1, -1};
for(auto [len, l] : s) {
if(len >= x[i]) {
cout << x[i] << " " << l << endl;
cout << flush;
int y; cin >> y;
int r = l + len - 1;
s.erase(s.find({len, l}));
if(l <= y - 1) s.insert({y - l, l});
if(y + 1 <= r) s.insert({r - y, y + 1});
break;
}
}
// assert(ok);
}
} else {
cout << "Bernardo" << endl;
vector<int> qaq;
for(int i = x[ok]; i <= n; i += x[ok]) qaq.push_back(i);
F(i, 1, n) {
int len, l; cin >> len >> l;
int r = l + len - 1;
bool qsy = false;
F(j, l, r) {
if(vst[j]) {
cout << j << endl;
qsy = 1;
break;
}
}
if(qsy) continue;
for(auto x : qaq) if(x >= l && x <= r) {
cout << x << endl;
qsy = true;
break;
}
assert(qsy);
}
}
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int t = 1;
F(i, 1, t) sol();
return 0;
}
//sldl
/*
5 14
3 7 2 3 10
10 1
7 4
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Runtime Error
input:
5 14 3 7 2 3 10 10 1 7 3 3 5
output:
Bernardo 2 4