Submission #756485

#TimeUsernameProblemLanguageResultExecution timeMemory
756485OlympiaSchools (IZhO13_school)C++17
25 / 100
2072 ms5236 KiB
#include <vector> #include <iostream> #include <cassert> #include <random> #include <cmath> #include <map> #include <algorithm> #include <bitset> #include <random> #include <queue> #include <set> #include <stack> using namespace std; vector<pair<int64_t,int64_t>> music, sports; vector<pair<int64_t,int64_t>> vec; int64_t val () { int64_t ans = 0; for (int i = 0; i < music.size(); i++) { ans += music[i].first; } for (int i = 0; i < sports.size(); i++) { ans += sports[i].second; } return ans; } bool comp (pair<int64_t, int64_t> p1, pair<int64_t, int64_t> p2) { return (p1.first - p1.second < p2.first - p2.second); } int64_t solve (int M, int S) { music.clear(), sports.clear(); random_shuffle(vec.begin(), vec.end()); for (auto& value: vec) { if (music.size() < M or sports.size() < S) { if (music.size() < M) { music.push_back(value); } else if (sports.size() < S) { sports.push_back(value); } } else { int64_t mx = 0; for (int i = 0; i < music.size(); i++) { auto m = music[i]; music[i] = value; mx = max(mx, val()); music[i] = m; } for (int i = 0; i < sports.size(); i++) { auto s = sports[i]; sports[i] = value; mx = max(mx, val()); sports[i] = s; } if (mx < val()) { continue; } bool broken = false; for (int i = 0; i < music.size(); i++) { auto m = music[i]; music[i] = value; if (val() == mx) { broken = true; break; } music[i] = m; } if (broken) continue; for (int i = 0; i < sports.size(); i++) { auto s = sports[i]; sports[i] = value; if (val() == mx) { break; } sports[i] = s; } } sort(music.begin(), music.end(), comp); sort(sports.begin(), sports.end(), comp); reverse(sports.begin(), sports.end()); if (!sports.empty() and !music.empty() and sports[0].first + music[0].second > sports[0].second + music[0].first) { swap(sports[0], music[0]); } } return val(); } int main () { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M, S; cin >> N >> M >> S; vec.resize(N); for (int i = 0; i < N; i++) { cin >> vec[i].first >> vec[i].second; } cout << solve(M, S); }

Compilation message (stderr)

school.cpp: In function 'int64_t val()':
school.cpp:18:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |  for (int i = 0; i < music.size(); i++) {
      |                  ~~^~~~~~~~~~~~~~
school.cpp:21:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  for (int i = 0; i < sports.size(); i++) {
      |                  ~~^~~~~~~~~~~~~~~
school.cpp: In function 'int64_t solve(int, int)':
school.cpp:33:23: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   33 |      if (music.size() < M or sports.size() < S) {
      |          ~~~~~~~~~~~~~^~~
school.cpp:33:44: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   33 |      if (music.size() < M or sports.size() < S) {
      |                              ~~~~~~~~~~~~~~^~~
school.cpp:34:24: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   34 |       if (music.size() < M) {
      |           ~~~~~~~~~~~~~^~~
school.cpp:36:32: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |       } else if (sports.size() < S) {
      |                  ~~~~~~~~~~~~~~^~~
school.cpp:41:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |       for (int i = 0; i < music.size(); i++) {
      |                       ~~^~~~~~~~~~~~~~
school.cpp:47:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |       for (int i = 0; i < sports.size(); i++) {
      |                       ~~^~~~~~~~~~~~~~~
school.cpp:57:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |       for (int i = 0; i < music.size(); i++) {
      |                       ~~^~~~~~~~~~~~~~
school.cpp:67:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |       for (int i = 0; i < sports.size(); i++) {
      |                       ~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...