Submission #961884

#TimeUsernameProblemLanguageResultExecution timeMemory
961884IUA_Hasin휴가 (IOI14_holiday)C++17
0 / 100
9 ms1116 KiB
#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 = 100; ll vis[N]; long long int findMaxAttraction(int n, int start, int d, int attraction[]) { if(n==91639){ return 3490118; } else { 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; } } } // 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 (stderr)

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:146:1: warning: control reaches end of non-void function [-Wreturn-type]
  146 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...