Submission #1870922
Source Code Expand
// Copyright (C) 2017 Sayutin Dmitry. // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; version 3 // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program; If not, see <http://www.gnu.org/licenses/>. #include <iostream> #include <vector> #include <stdint.h> #include <algorithm> #include <set> #include <map> #include <array> #include <queue> #include <stack> #include <functional> #include <utility> #include <string> #include <assert.h> #include <iterator> #include <cstdint> #include <cinttypes> #include <string.h> #include <random> #include <numeric> #include <tuple> using std::cin; using std::cout; using std::cerr; using std::vector; using std::map; using std::array; using std::set; using std::string; using std::pair; using std::make_pair; using std::min; using std::abs; using std::max; using std::unique; using std::sort; using std::generate; using std::reverse; using std::min_element; using std::max_element; #ifdef LOCAL #define LASSERT(X) assert(X) #else #define LASSERT(X) {} #endif template <typename T> T input() { T res; cin >> res; LASSERT(cin); return res; } template <typename IT> void input_seq(IT b, IT e) { std::generate(b, e, input<typename std::remove_reference<decltype(*b)>::type>); } #define SZ(vec) int((vec).size()) #define ALL(data) data.begin(),data.end() #define RALL(data) data.rbegin(),data.rend() #define TYPEMAX(type) std::numeric_limits<type>::max() #define TYPEMIN(type) std::numeric_limits<type>::min() #define pb push_back #define eb emplace_back int main() { std::iostream::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // code here. int n = input<int>(); vector<pair<int, int>> a(n); for (int i = 0; i != n; ++i) cin >> a[i].first >> a[i].second; std::sort(ALL(a), [](pair<int, int> x, pair<int, int> y) {return make_pair(x.first + x.second, x.first) < make_pair(y.first + y.second, y.first);}); vector<int> f(n + 1); // given that last taken // person is i and there are j + 1 taken persons now, what is the minimum height now. f[0] = 0; std::fill(f.begin() + 1, f.end(), TYPEMAX(int)); for (int i = 0; i != n; ++i) for (int j = n; j > 0; --j) if (f[j - 1] <= a[i].first) f[j] = min(f[j], f[j - 1] + a[i].second); cout << std::find(ALL(f), TYPEMAX(int)) - f.begin() - 1 << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Zabuton |
User | cdkrot |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 2969 Byte |
Status | AC |
Exec Time | 23 ms |
Memory | 384 KB |
Judge Result
Set Name | sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt, sample-03.txt |
All | sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, sample-01.txt, sample-02.txt, sample-03.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 1 ms | 256 KB |
01-02.txt | AC | 1 ms | 256 KB |
01-03.txt | AC | 3 ms | 256 KB |
01-04.txt | AC | 6 ms | 256 KB |
01-05.txt | AC | 19 ms | 384 KB |
01-06.txt | AC | 19 ms | 384 KB |
01-07.txt | AC | 19 ms | 384 KB |
01-08.txt | AC | 19 ms | 384 KB |
01-09.txt | AC | 19 ms | 384 KB |
01-10.txt | AC | 1 ms | 256 KB |
01-11.txt | AC | 2 ms | 256 KB |
01-12.txt | AC | 8 ms | 256 KB |
01-13.txt | AC | 19 ms | 384 KB |
01-14.txt | AC | 20 ms | 384 KB |
01-15.txt | AC | 20 ms | 384 KB |
01-16.txt | AC | 20 ms | 384 KB |
01-17.txt | AC | 20 ms | 384 KB |
01-18.txt | AC | 20 ms | 384 KB |
01-19.txt | AC | 1 ms | 256 KB |
01-20.txt | AC | 2 ms | 256 KB |
01-21.txt | AC | 12 ms | 256 KB |
01-22.txt | AC | 22 ms | 384 KB |
01-23.txt | AC | 22 ms | 384 KB |
01-24.txt | AC | 22 ms | 384 KB |
01-25.txt | AC | 22 ms | 384 KB |
01-26.txt | AC | 22 ms | 384 KB |
01-27.txt | AC | 22 ms | 384 KB |
01-28.txt | AC | 19 ms | 384 KB |
01-29.txt | AC | 19 ms | 384 KB |
01-30.txt | AC | 19 ms | 384 KB |
01-31.txt | AC | 19 ms | 384 KB |
01-32.txt | AC | 19 ms | 384 KB |
01-33.txt | AC | 19 ms | 384 KB |
01-34.txt | AC | 19 ms | 384 KB |
01-35.txt | AC | 23 ms | 384 KB |
01-36.txt | AC | 23 ms | 384 KB |
01-37.txt | AC | 23 ms | 384 KB |
01-38.txt | AC | 23 ms | 384 KB |
01-39.txt | AC | 23 ms | 384 KB |
01-40.txt | AC | 19 ms | 384 KB |
sample-01.txt | AC | 1 ms | 256 KB |
sample-02.txt | AC | 1 ms | 256 KB |
sample-03.txt | AC | 1 ms | 256 KB |