| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1328732 | Naa | Topical (NOI23_topical) | C++20 | 263 ms | 125652 KiB |
#include <bits/stdc++.h>
using namespace std;
mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count());
using i32 = long long;
#define all(a) (a).begin(), (a).end()
#define open(x) if(fopen(#x ".inp", "r")) {freopen(#x ".inp", "r", stdin); freopen(#x ".out", "w", stdout);}
template<class X, class Y> bool mimi(X &x, const Y &y) {if(x > y) {x = y; return 1;} return 0;}
template<class X, class Y> bool mama(X &x, const Y &y) {if(x < y) {x = y; return 1;} return 0;}
const i32 N = 1e6 + 5;
const i32 M = 1000000007;
const i32 inf = 1000000009;
const i32 infll = (i32)1000000000000000018;
vector<i32> r[N], u[N];
void sad(i32 testID) {
i32 n, k;
cin >> n >> k;
vector<vector<pair<i32, i32>>> r(k, vector<pair<i32, i32>>(n)), u(k, vector<pair<i32, i32>>(n));
for(i32 i = 0; i < n; i ++)
for(i32 j = 0; j < k; j ++)
cin >> r[j][i].first, r[j][i].second = i;
for(i32 i = 0; i < n; i ++)
for(i32 j = 0; j < k; j ++)
cin >> u[j][i].first, u[j][i].second = i;
for(i32 i = 0; i < k; i ++) sort(all(r[i]));
i32 cnt[n], p[k], it[k];
memset(cnt, 0, sizeof cnt);
memset(p, 0, sizeof p);
memset(it, 0, sizeof it);
i32 res = 0;
while(true) {
bool check = false;
for(i32 i = 0; i < k; i ++)
while(true) {
if(it[i] == n) break;
if(r[i][it[i]].first > p[i]) break;
cnt[r[i][it[i]].second] ++;
if(cnt[r[i][it[i]].second] == k) {
check = true; res ++;
for(i32 j = 0; j < k; j ++) p[j] += u[j][r[i][it[i]].second].first;
}
it[i] ++;
}
if(!check) break;
}
cout << res << endl;
}
signed main() {
auto begin = std::chrono::high_resolution_clock::now();
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
open(task)
i32 t = 1;
// cin >> t;
for(i32 testID = 1; testID <= t; testID++) {
// cout << "Case #" << testID << ":\n";
sad(testID);
}
auto end = std::chrono::high_resolution_clock::now();
auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin);
// cerr << endl << "Time measured: " << elapsed.count() * 1e-9 << " seconds." << endl;
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
