제출 #484121

#제출 시각아이디문제언어결과실행 시간메모리
484121Valera_GrinenkoJob Scheduling (CEOI12_jobs)C++17
16 / 100
1095 ms29720 KiB
#pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimization ("unroll-loops") #include <iostream> #include <fstream> #include <algorithm> #include <vector> #include <set> #include <stack> #include <map> #include <unordered_map> #include <iomanip> #include <cmath> #include <queue> #include <bitset> #include <numeric> #include <array> #include <cstring> #include <random> #include <chrono> #include <ctime> #define fi first #define se second #define pb push_back #define mp make_pair #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define make_unique(x) sort(all((x))); (x).resize(unique(all((x))) - (x).begin()) typedef long long ll; typedef long double ld; using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); // #include <ext/pb_ds/assoc_container.hpp> // #include <ext/pb_ds/tree_policy.hpp> // using namespace __gnu_pbds; // template<class T> // using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, d, m; cin >> n >> d >> m; vector<pair<int, int> > req(m); for(int i = 0; i < m; i++) { cin >> req[i].fi; req[i].se = i + 1; } sort(all(req)); int l = 0, r = m; while(l < r) { int mb = (l + r) / 2; map<int, vector<int> > ans; int left = m, cpos = 0, cday = 0, av = 0; vector<int> avreq; while(left) { cday++; av = mb; while(cpos < m && req[cpos].fi <= cday) { avreq.pb(req[cpos].se); cpos++; } while(av && !avreq.empty()) { av--; ans[cday].pb(avreq.back()); avreq.pop_back(); left--; } } if(cday > n) l = mb + 1; else r = mb; } map<int, vector<int> > ans; int left = m, cpos = 0, cday = 0, av = 0; vector<int> avreq; while(left) { cday++; av = l; while(cpos < m && req[cpos].fi <= cday) { avreq.pb(req[cpos].se); cpos++; } while(av && !avreq.empty()) { av--; ans[cday].pb(avreq.back()); avreq.pop_back(); left--; } } cout << l << '\n'; for(int i = 1; i <= n; i++) { for(auto& x : ans[i]) cout << x << ' '; cout << "0\n"; } return 0; } /* */

컴파일 시 표준 에러 (stderr) 메시지

jobs.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    3 | #pragma GCC optimization ("unroll-loops")
      |
#Verdict Execution timeMemoryGrader output
Fetching results...