제출 #1199717

#제출 시각아이디문제언어결과실행 시간메모리
1199717ofozTopical (NOI23_topical)C++20
33 / 100
556 ms126548 KiB
#include <iostream> #include <vector> #include <algorithm> #define int long long using namespace std; void nOne(int n, int k) { vector<vector<int>> grid(n, vector<int>(k)); for (int i = 0; i < n; ++i) for (int j = 0; j < k; ++j) cin >> grid[i][j]; vector<int> ben(k); for (int i = 0; i < k; ++i) cin >> ben[i]; sort(grid.begin(), grid.end()); int sum_first_row = 0; for (int j = 0; j < k; ++j) sum_first_row += grid[0][j]; if (sum_first_row == 0) cout << 1 << endl; else cout << 0 << endl; } void kOne(int n, int k) { vector<vector<int>> grid(n, vector<int>(k)); vector<vector<int>> ben(n, vector<int>(k)); for (int i = 0; i < n; ++i) for (int j = 0; j < k; ++j) cin >> grid[i][j]; for (int i = 0; i < n; ++i) for (int j = 0; j < k; ++j) cin >> ben[i][j]; vector<pair<int, int>> pairs; for (int i = 0; i < n; ++i) pairs.push_back({grid[i][0], ben[i][0]}); sort(pairs.begin(), pairs.end()); reverse(pairs.begin(), pairs.end()); int cur = 0, res = 0; while (!pairs.empty() && cur >= pairs.back().first) { cur += pairs.back().second; pairs.pop_back(); res++; } cout << res << endl; } void solve() { int n, k; cin >> n >> k; if (n == 1) nOne(n, k); else if (k == 1) kOne(n, k); } signed main() { solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...