Submission #1093891

#TimeUsernameProblemLanguageResultExecution timeMemory
1093891Roumak77Topical (NOI23_topical)C++17
61 / 100
208 ms30960 KiB
#pragma GCC optimize ("O3") #pragma GCC optimize ("unroll-loops") #pragma GCC optimize("-Ofast") #include <bits/stdc++.h> #include <algorithm> #include <iostream> #include <vector> #include <limits> #include <cmath> #include <stack> #include <queue> #include <map> #include <math.h> using namespace std; using ll = long long; void subtask1(ll n, ll k){ for(ll i = 0; i < k; i++){ ll temp; cin >> temp; if(temp > 0){ cout << 0 << endl; return; } } cout << 1 << endl; } void subtask3(ll n, ll k){ vector<pair<ll, ll>> list_n(n, {0, 0}); for(ll i = 0; i < n; i++){ cin >> list_n[i].first; } for(ll i = 0; i < n; i++){ cin >> list_n[i].second; } sort(list_n.begin(), list_n.end()); ll curr = 0; for(ll i = 0; i < n; i++){ if(list_n[i].first <= curr){ curr += list_n[i].second; }else{ cout << i << endl; return; } } cout << n << endl; } void subtask2(ll n, ll k){ vector<bool> vis(n, false); vector<vector<pair<ll, ll>>> list_n(n, vector<pair<ll, ll>>(k, {0, 0})); ll cnt = 0; vector<ll> curr(k, 0); for(ll i = 0; i < n; i++){ for(ll j = 0; j < k; j++){ cin >> list_n[i][j].first; } } for(ll i = 0; i < n; i++){ for(ll j = 0; j < k; j++){ cin >> list_n[i][j].second; } } while(cnt != n){ bool add = false; for(ll i = 0; i < n; i++){ if(vis[i]){ continue; } bool pos = true; for(ll j = 0; j < k; j++){ if(curr[j] < list_n[i][j].first){ pos = false; break; } } if(!pos){ continue; } for(ll j = 0; j < k; j++){ curr[j] += list_n[i][j].second; } vis[i] = true; add=true; cnt++; } if(!add){ break; } } cout << cnt << endl; } void solve(){ ll n, k; cin >> n >> k; if(n == 1){ subtask1(n, k); return; }else if(k == 1){ subtask3(n, k); return; }else if(n <= 100 & k <= 100){ subtask2(n, k); } } bool single = true; int main(){ ios_base::sync_with_stdio(false); cout.tie(0); cin.tie(0); ll t = 1; if(!single) cin >> t; while(t--){ solve(); } }

Compilation message (stderr)

Main.cpp: In function 'void solve()':
Main.cpp:122:16: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
  122 |     }else if(n <= 100 & k <= 100){
      |              ~~^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...