Task: | Greedy Game |
Sender: | Laakeri |
Submission time: | 2016-07-27 20:00:14 +0300 |
Language: | C++ |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 100 |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.03 s | details |
#2 | ACCEPTED | 0.04 s | details |
#3 | ACCEPTED | 0.04 s | details |
#4 | ACCEPTED | 0.02 s | details |
#5 | ACCEPTED | 0.04 s | details |
#6 | ACCEPTED | 0.04 s | details |
#7 | ACCEPTED | 0.04 s | details |
#8 | ACCEPTED | 0.03 s | details |
#9 | ACCEPTED | 0.03 s | details |
#10 | ACCEPTED | 0.04 s | details |
#11 | ACCEPTED | 0.04 s | details |
#12 | ACCEPTED | 0.03 s | details |
#13 | ACCEPTED | 0.04 s | details |
#14 | ACCEPTED | 0.11 s | details |
#15 | ACCEPTED | 0.08 s | details |
#16 | ACCEPTED | 0.07 s | details |
#17 | ACCEPTED | 0.08 s | details |
#18 | ACCEPTED | 0.08 s | details |
#19 | ACCEPTED | 0.10 s | details |
#20 | ACCEPTED | 0.11 s | details |
#21 | ACCEPTED | 0.12 s | details |
#22 | ACCEPTED | 0.08 s | details |
#23 | ACCEPTED | 0.12 s | details |
#24 | ACCEPTED | 0.10 s | details |
#25 | ACCEPTED | 0.12 s | details |
#26 | ACCEPTED | 0.10 s | details |
#27 | ACCEPTED | 0.10 s | details |
#28 | ACCEPTED | 0.09 s | details |
#29 | ACCEPTED | 0.09 s | details |
#30 | ACCEPTED | 0.08 s | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:54:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (s.size() < (i + 1) / 2) { ^ input/code.cpp:39:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &n); ^ input/code.cpp:42:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &a[i].first); ^ input/code.cpp:46:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &a[i].second); ^
Code
#include <stdlib.h> #include <string.h> #if ( _WIN32 || __WIN32__ || _WIN64 || __WIN64__ ) #define INT64 "%I64d" #else #define INT64 "%lld" #endif #if ( _WIN32 || __WIN32__ || _WIN64 || __WIN64__ ) #define UNS64 "%I64u" #else #define UNS64 "%llu" #endif /** * Author: Igor Labutin (Labutin.IgorL@gmail.com) */ #include <cstdio> #include <cassert> #include <algorithm> #include <set> using namespace std; typedef long long ll; #define forn(i, n) for (int i = 0; i < (int)(n); i++) #define forlr(i, l, r) for (int i = (int)(l); i <= (int)(r); i++) const int MAXN = 200000; pair <int, int> a[MAXN]; int n; bool cmp(pair <int, int> x, pair <int, int> y) { return x.first > y.first || (x.first == y.first && x.second > y.second); } int main() { scanf("%d", &n); forn(i, n) { scanf("%d", &a[i].first); } forn(i, n) { scanf("%d", &a[i].second); } sort(a, a + n, cmp); multiset <int> s; forn(i, n) { if (s.size() < (i + 1) / 2) { s.insert(a[i].second); } else { if (s.size() != 0 && *s.begin() < a[i].second) { s.erase(s.begin()); s.insert(a[i].second); } } } ll res = 0; for (auto it = s.begin(); it != s.end(); ++it) { res += *it; } printf(INT64 "\n", res); return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
5 1 2 3 4 5 2 3 4 5 6 |
correct output |
---|
8 |
user output |
---|
8 |
Test 2
Verdict: ACCEPTED
input |
---|
10 1 1 1 1 1 1 1 1 1 1 2 3 9 5 6 6 1 2 3 4 |
correct output |
---|
17 |
user output |
---|
17 |
Test 3
Verdict: ACCEPTED
input |
---|
15 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
7 |
user output |
---|
7 |
Test 4
Verdict: ACCEPTED
input |
---|
15 2 4 2 8 6 6 5 6 4 10 9 3 10 7 ... |
correct output |
---|
60 |
user output |
---|
60 |
Test 5
Verdict: ACCEPTED
input |
---|
15 3 8 6 9 1 5 1 9 3 10 1 10 9 8 ... |
correct output |
---|
47 |
user output |
---|
47 |
Test 6
Verdict: ACCEPTED
input |
---|
15 2 6 4 9 8 3 8 7 1 8 8 7 5 6 8 7 6 4 9 3 8 9 5 3 10 2 2 4 6 3 |
correct output |
---|
46 |
user output |
---|
46 |
Test 7
Verdict: ACCEPTED
input |
---|
15 7 10 8 8 6 10 5 1 7 3 9 4 7 9 ... |
correct output |
---|
56 |
user output |
---|
56 |
Test 8
Verdict: ACCEPTED
input |
---|
15 9 8 7 7 4 6 4 10 3 7 5 9 5 9 5 3 6 7 2 9 8 3 3 7 5 6 7 9 3 8 |
correct output |
---|
55 |
user output |
---|
55 |
Test 9
Verdict: ACCEPTED
input |
---|
15 684567283 992849846 97315816 3... |
correct output |
---|
5346487014 |
user output |
---|
5346487014 |
Test 10
Verdict: ACCEPTED
input |
---|
15 220108915 735849670 3920201 84... |
correct output |
---|
4369763599 |
user output |
---|
4369763599 |
Test 11
Verdict: ACCEPTED
input |
---|
15 428748595 949568430 413698361 ... |
correct output |
---|
5262225140 |
user output |
---|
5262225140 |
Test 12
Verdict: ACCEPTED
input |
---|
15 310486323 634006126 326650297 ... |
correct output |
---|
5825473032 |
user output |
---|
5825473032 |
Test 13
Verdict: ACCEPTED
input |
---|
15 865322099 789162758 742776009 ... |
correct output |
---|
5028684388 |
user output |
---|
5028684388 |
Test 14
Verdict: ACCEPTED
input |
---|
100000 1 5 7 1 6 8 1 7 9 2 7 7 6 1 8 ... |
correct output |
---|
387044 |
user output |
---|
387044 |
Test 15
Verdict: ACCEPTED
input |
---|
100000 10 6 1 4 1 8 5 4 8 10 5 8 7 5 ... |
correct output |
---|
388046 |
user output |
---|
388046 |
Test 16
Verdict: ACCEPTED
input |
---|
100000 6 1 1 6 7 8 10 6 7 6 8 7 6 5 3... |
correct output |
---|
387631 |
user output |
---|
387631 |
Test 17
Verdict: ACCEPTED
input |
---|
100000 9 2 5 7 5 8 5 3 4 10 5 6 10 2 ... |
correct output |
---|
387600 |
user output |
---|
387600 |
Test 18
Verdict: ACCEPTED
input |
---|
100000 8 7 4 7 3 6 2 6 1 2 7 5 1 5 5 ... |
correct output |
---|
387928 |
user output |
---|
387928 |
Test 19
Verdict: ACCEPTED
input |
---|
100000 329395763 605200206 806179577 ... |
correct output |
---|
37487670627833 |
user output |
---|
37487670627833 |
Test 20
Verdict: ACCEPTED
input |
---|
100000 595917875 55389390 744521721 4... |
correct output |
---|
37446270419509 |
user output |
---|
37446270419509 |
Test 21
Verdict: ACCEPTED
input |
---|
100000 535538034 976297510 186037641 ... |
correct output |
---|
37452666188784 |
user output |
---|
37452666188784 |
Test 22
Verdict: ACCEPTED
input |
---|
100000 148256243 367924566 130727336 ... |
correct output |
---|
37441139105851 |
user output |
---|
37441139105851 |
Test 23
Verdict: ACCEPTED
input |
---|
100000 434072499 230270558 578590809 ... |
correct output |
---|
37528719082827 |
user output |
---|
37528719082827 |
Test 24
Verdict: ACCEPTED
input |
---|
100000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
375239 |
user output |
---|
375239 |
Test 25
Verdict: ACCEPTED
input |
---|
100000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
37477679133533 |
user output |
---|
37477679133533 |
Test 26
Verdict: ACCEPTED
input |
---|
100000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
375514 |
user output |
---|
375514 |
Test 27
Verdict: ACCEPTED
input |
---|
100000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
37505905982098 |
user output |
---|
37505905982098 |
Test 28
Verdict: ACCEPTED
input |
---|
100000 100000 100000 100000 100000 10... |
correct output |
---|
5000000000 |
user output |
---|
5000000000 |
Test 29
Verdict: ACCEPTED
input |
---|
100000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
2500000000 |
user output |
---|
2500000000 |
Test 30
Verdict: ACCEPTED
input |
---|
100000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
3750025000 |
user output |
---|
3750025000 |