QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#108871 | #6389. Topical | cyan17# | 12 | 139ms | 116544kb | C++17 | 3.0kb | 2023-05-26 20:39:04 | 2024-05-31 13:44:21 |
Judging History
answer
#include "bits/stdc++.h"
using namespace std;
/* #define int long long */
#define fr first
#define sc second
#define eb emplace_back
const char nl = '\n';
void __print(int x) {cerr << x;}
void __print(long x) {cerr << x;}
void __print(unsigned x) {cerr << x;}
void __print(unsigned long x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(float x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}
template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifndef ONLINE_JUDGE
#define dbg(x...) cerr << "LINE(" << __LINE__ << ") -> " <<"[" << #x << "] = ["; _print(x)
#else
#define dbg(x...)
#endif
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n, k; cin >> n >> k;
/* int r[n + 1][k + 1], u[n + 1][k + 1]; */
vector<vector<int>> r(n + 1, vector<int>(k + 1));
vector<vector<int>> u(n + 1, vector<int>(k + 1));
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= k; ++j) {
cin >> r[i][j];
}
}
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= k; ++j) {
cin >> u[i][j];
}
}
int p[k + 1] = {};
int cntPass[n + 1] = {};
set<pair<int, int>> kth[k + 1];
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= k; ++j) {
kth[j].insert({r[i][j], i});
if(p[j] >= r[i][j]) {
++cntPass[i];
}
}
}
set<pair<int, int>> setCnt;
for(int i = 1; i <= n; ++i) setCnt.insert({cntPass[i], i});
int res = 0;
int best = (*setCnt.rbegin()).sc;
while(cntPass[best] >= k) {
/* cout << best << nl; */
auto tmp = setCnt.end();
--tmp;
setCnt.erase(tmp);
for(int j = 1; j <= k; ++j) {
int q = p[j] + u[best][j];
auto ptr = kth[j].upper_bound({p[j], n + 1});
while(ptr != kth[j].end() && (*ptr).fr <= q) {
setCnt.erase({cntPass[(*ptr).sc], (*ptr).sc});
++cntPass[(*ptr).sc];
setCnt.insert({cntPass[(*ptr).sc], (*ptr).sc});
++ptr;
}
p[j] += u[best][j];
}
++res;
if(setCnt.size() == 0) break;
best = (*setCnt.rbegin()).sc;
}
/* cout << "Loop over"; */
/* cout << nl; */
/* cout << best << nl; */
cout << res << nl;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 12
Accepted
Test #1:
score: 12
Accepted
time: 0ms
memory: 3568kb
input:
1 1 693647287 340782526
output:
0
result:
ok 1 number(s): "0"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
1 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 279985824 991797187 998715443 98505529 106002744 636773096 815089164 196160830 796988849 87975...
output:
1
result:
ok 1 number(s): "1"
Test #3:
score: 0
Accepted
time: 2ms
memory: 4692kb
input:
1 10000 841961872 0 0 0 0 0 0 0 0 0 0 0 0 0 831386430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205210920 705123207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 276768098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 661649446 0 0 0 0 0 0 0 0 0 0 ...
output:
0
result:
ok 1 number(s): "0"
Test #4:
score: 0
Accepted
time: 136ms
memory: 116452kb
input:
1 1000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
1
result:
ok 1 number(s): "1"
Test #5:
score: 0
Accepted
time: 136ms
memory: 116540kb
input:
1 1000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
1
result:
ok 1 number(s): "1"
Test #6:
score: 0
Accepted
time: 139ms
memory: 116452kb
input:
1 1000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
1
result:
ok 1 number(s): "1"
Test #7:
score: 0
Accepted
time: 104ms
memory: 116544kb
input:
1 1000000 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 10...
output:
0
result:
ok 1 number(s): "0"
Subtask #2:
score: 0
Time Limit Exceeded
Test #8:
score: 28
Accepted
time: 0ms
memory: 3576kb
input:
100 1 893339036 896783899 690308537 201770764 262364362 105000893 770698921 744238454 470980016 935046317 642998516 100481910 392307650 116783134 196939768 372329082 346372520 43063564 245523488 389084350 130314590 412588681 987795927 681635353 304582580 472268968 700147283 743357606 792644412 99955...
output:
85
result:
ok 1 number(s): "85"
Test #9:
score: -28
Time Limit Exceeded
input:
100 100 1000000000 828788913 1000000000 894501902 1000000000 898513761 837197514 865900986 809812226 853486369 848261509 888902562 1000000000 881898651 932777249 907237990 892103882 1000000000 870206141 1000000000 776016734 1000000000 889438568 856689807 887799348 859324346 872070680 879391131 10000...
output:
result:
Subtask #3:
score: 0
Time Limit Exceeded
Test #15:
score: 0
Time Limit Exceeded
input:
10000 1 568857328 651788426 751475430 102940442 763289419 468657944 770847628 780257867 16919385 575963868 281824241 291248174 140016533 313529232 302186452 32709864 787073783 1926820 239509174 220454071 34252400 390385721 675239026 245106357 489697460 28435096 825528061 159083009 16370561 223299279...
output:
result:
Subtask #4:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%