Submission #1279341

#TimeUsernameProblemLanguageResultExecution timeMemory
1279341HisuTopical (NOI23_topical)C++20
100 / 100
380 ms136468 KiB
// Chaiyo... #include <bits/stdc++.h> using namespace std; typedef long long ll; #define ed "\n" #define int long long const int N = 2e5 + 5; void solve(int iTest){ int n, k; cin >> n >> k; vector<vector<int>> r(n + 2, vector<int> (k + 2, 0)); vector<vector<int>> u(n + 2, vector<int> (k + 2, 0)); vector<int> p(k + 2, 0), cnt(n + 2, 0), ptr(k + 2, 0); vector<vector<pair<int, int>>> s(k + 2); queue<int> q; for(int i = 1; i <= n; i++) { for(int j = 1; j <= k; j++) { cin >> r[i][j]; } for(int j = 1; j <= k; j++) { s[j].push_back({r[i][j], i}); if(r[i][j] <= p[j]) cnt[i]++; } if(cnt[i] == k) q.push(i); } for(int i = 1; i <= k; i++) { sort(s[i].begin(), s[i].end()); while(ptr[i] < n && s[i][ptr[i]].first <= p[i]) ptr[i]++; } for(int i = 1; i <= n; i++) { for(int j = 1; j <= k; j++) { cin >> u[i][j]; } } int ans = 0; while(q.size()) { int id = q.front(); q.pop(); ans++; // cout << id << ed; for(int i = 1; i <= k; i++) p[i] += u[id][i]; // for(int i = 1; i <= k; i++) cout << p[i] << ' '; // cout << ed; for(int i = 1; i <= k; i++) { while(ptr[i] < n && s[i][ptr[i]].first <= p[i]) { cnt[s[i][ptr[i]].second]++; if(cnt[s[i][ptr[i]].second] == k) q.push(s[i][ptr[i]].second); ptr[i]++; } } } cout << ans; } #define TASK "main" signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); if(fopen(TASK ".inp","r")){ freopen(TASK ".inp","r",stdin); freopen(TASK ".out","w",stdout); } else if(fopen("main.inp","r")){ freopen("main.inp","r",stdin); freopen("main.out","w",stdout); } int T = 1; // cin >> T; for(int iTest = 1; iTest <= T; iTest++){ solve(iTest); } } /** **/

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:78:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   78 |         freopen(TASK ".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:79:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   79 |         freopen(TASK ".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:82:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   82 |         freopen("main.inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
Main.cpp:83:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   83 |         freopen("main.out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...