Submission #841678

#TimeUsernameProblemLanguageResultExecution timeMemory
841678kwongwengTopical (NOI23_topical)C++17
100 / 100
615 ms82552 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef pair<int, int> ii; typedef vector<ii> vii; typedef long double ld; typedef pair<ll, ll> pll; #define FOR(i, a, b) for(int i = a; i < b; i++) #define ROF(i, a, b) for(int i = a; i >= b; i--) #define ms memset #define pb push_back #define fi first #define se second int main(){ int n, k; cin>>n>>k; ll r[n][k], u[n][k]; vector<pair<ll,int>> arr[k]; FOR(i,0,n){ FOR(j,0,k) cin>>r[i][j]; } FOR(j,0,k){ FOR(i,0,n) arr[j].pb({r[i][j], i}); sort(arr[j].begin(), arr[j].end()); } FOR(i,0,n){ FOR(j,0,k) cin>>u[i][j]; } vi cnt(n); vi bfs; vector<ll> p(k); vi cur(k); FOR(j,0,k){ while (cur[j] < n && p[j] >= arr[j][cur[j]].fi){ int pos = arr[j][cur[j]].se; cnt[pos]++; if (cnt[pos]==k){ bfs.pb(pos); } cur[j]++; } } FOR(i,0,bfs.size()){ //cout<<bfs[i]<<"\n"; int ind = bfs[i]; FOR(j,0,k){ p[j] += u[ind][j]; while (cur[j] < n && p[j] >= arr[j][cur[j]].fi){ int pos = arr[j][cur[j]].se; cnt[pos]++; if (cnt[pos]==k){ bfs.pb(pos); } cur[j]++; } } } cout<<bfs.size()<<"\n"; return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:10:39: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 | #define FOR(i, a, b) for(int i = a; i < b; i++)
......
   44 |     FOR(i,0,bfs.size()){
      |         ~~~~~~~~~~~~~~                 
Main.cpp:44:5: note: in expansion of macro 'FOR'
   44 |     FOR(i,0,bfs.size()){
      |     ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...