Submission #749950

# Submission time Handle Problem Language Result Execution time Memory
749950 2023-05-29T02:12:26 Z Abrar_Al_Samit Holiday (IOI14_holiday) C++17
47 / 100
5000 ms 5324 KB
#include <bits/stdc++.h>
#include"holiday.h"
using namespace std;

int get(int i, int j, int x) {
    return j-i + min(x-i, j-x);
}
long long int findMaxAttraction(int n, int start, int d, int a[]) {
    if(d==0) return 0;

    long long ans = 0;
    for(int i=0; i<=start; ++i) {
        if(start-i>d) continue;

        multiset<int>list;
        long long cur = 0;
        for(int j=i; j<start; ++j) {
            list.insert(a[j]);

            cur += a[j];
        }
        while(list.size()+start-i>d) {
            cur -= *list.begin();
            list.erase(list.begin());
        }

        for(int j=start; j<n && get(i, j, start)<d; ++j) {
            int travel_cost = get(i, j, start);
            if(travel_cost+list.size()>d) {
                cur -= *list.begin();
                list.erase(list.begin());
            }   
            if(travel_cost+list.size()>d) {
                cur -= *list.begin();
                list.erase(list.begin());
            }   

            if(travel_cost+list.size()<d) {
                list.insert(a[j]);
                cur += a[j];
            } else {
                if(a[j]>*list.begin()) {
                    cur -= *list.begin();
                    list.erase(list.begin());
                    cur += a[j];
                    list.insert(a[j]);
                }
            }

            ans = max(ans, cur);
        }
    }
    return ans;
}

Compilation message

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:22:34: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   22 |         while(list.size()+start-i>d) {
      |               ~~~~~~~~~~~~~~~~~~~^~
holiday.cpp:29:39: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   29 |             if(travel_cost+list.size()>d) {
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
holiday.cpp:33:39: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   33 |             if(travel_cost+list.size()>d) {
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
holiday.cpp:38:39: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |             if(travel_cost+list.size()<d) {
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 0 ms 596 KB Output is correct
3 Correct 1 ms 596 KB Output is correct
4 Correct 0 ms 596 KB Output is correct
5 Correct 0 ms 596 KB Output is correct
6 Correct 1 ms 596 KB Output is correct
7 Correct 1 ms 696 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 29 ms 5288 KB Output is correct
2 Correct 32 ms 5304 KB Output is correct
3 Correct 29 ms 5324 KB Output is correct
4 Correct 31 ms 5288 KB Output is correct
5 Correct 28 ms 3712 KB Output is correct
6 Correct 10 ms 1948 KB Output is correct
7 Correct 17 ms 2760 KB Output is correct
8 Correct 18 ms 2660 KB Output is correct
9 Correct 7 ms 1544 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 479 ms 808 KB Output is correct
2 Correct 408 ms 724 KB Output is correct
3 Correct 381 ms 844 KB Output is correct
4 Correct 165 ms 756 KB Output is correct
5 Correct 291 ms 848 KB Output is correct
6 Correct 3 ms 596 KB Output is correct
7 Correct 8 ms 704 KB Output is correct
8 Correct 14 ms 596 KB Output is correct
9 Correct 16 ms 596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 5029 ms 5292 KB Time limit exceeded
2 Halted 0 ms 0 KB -