Submission #961892

# Submission time Handle Problem Language Result Execution time Memory
961892 2024-04-12T17:03:17 Z IUA_Hasin Holiday (IOI14_holiday) C++17
23 / 100
10 ms 1696 KB
#include"holiday.h"

#include <bits/stdc++.h>
 
#define endl                                "\n"
#define yeap                                cout<<"YES"<<endl
#define nope                                cout<<"NO"<<endl
#define ll                                  long long
 
using namespace std;

const ll N = 101;
ll vis[N];

long long int findMaxAttraction(int n, int start, int d, int attraction[]) {  
    ll sum = 0;
    for(int i=0; i<n; i++){
        sum = sum+attraction[i];
    }

    if(start==0){
        if(d>=(2*n-1)){
            return sum;
        } else if(d<=2){
            ll ans = attraction[0];
            if(d==0){
                return 0;
            } else {
                if(d==1){
                    return ans;
                } else if(d==2){
                    ll b = attraction[1];
                    ans = max(ans, b);
                    return ans;
                }
            }
        } else {
            ll a = min(d-1, n-1);
            ll b;
            if(d%2==0){
                b = (d/2)-1;
            } else {
                b = (d-1)/2;
            }
            // cout << a << " " << b <<endl;

            for(int i=0; i<b; i++){
                ll a = attraction[i];
                vis[a]++;
            }
            ll ans1 = 0;
            for(int i=b; i<=a; i++){
                ll a = attraction[i];
                ll extr = d-i-1;
                ll ans = 0;
                // cout << extr << endl;
                for(int i=100; i>=0; i--){
                    if(vis[i]>0){
                        if(extr<=vis[i]){
                            ans = ans+i*extr;
                            break;
                        } else {
                            ans = ans+i*vis[i];
                            extr = extr-vis[i];
                        }
                    }
                }
                ans = ans+attraction[i];
                // cout<<ans<<endl;
                ans1 = max(ans1, ans);
                vis[a]++;
            }
            // for(int i=0; i<100; i++){
            //     cout << vis[i] << " ";
            // }
            // cout<<endl;
            return ans1;
        }
    }
}

Compilation message

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:80:1: warning: control reaches end of non-void function [-Wreturn-type]
   80 | }
      | ^
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 604 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Runtime error 2 ms 1116 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 860 KB Output is correct
2 Correct 8 ms 856 KB Output is correct
3 Correct 7 ms 856 KB Output is correct
4 Correct 6 ms 832 KB Output is correct
5 Correct 10 ms 1084 KB Output is correct
6 Correct 2 ms 860 KB Output is correct
7 Correct 5 ms 860 KB Output is correct
8 Correct 5 ms 860 KB Output is correct
9 Correct 2 ms 860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 856 KB Output is correct
2 Correct 1 ms 604 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Runtime error 1 ms 1116 KB Execution killed with signal 11
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 1576 KB Output is correct
2 Correct 9 ms 1568 KB Output is correct
3 Runtime error 6 ms 1696 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -