Submission #1334330

#TimeUsernameProblemLanguageResultExecution timeMemory
1334330sporknivesA Difficult(y) Choice (BOI21_books)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "books.h"
typedef long long ll;
using namespace std;

void solve(int N, int K, long long A, int S) {
    int lo = 1, hi = N;
    int idx=N;
    
    vector<ll> arr; arr.assign(N+1,-1);
    while(lo<=hi) {
		int mid = (lo+hi)/2;
		ll res = skim(mid);
		arr[mid] = res;
		if(res > A) {
			hi=mid-1;
			idx=min(idx,mid);
		}
		else {
			lo=mid+1;
		}
	}
	
	if(idx<K) {
		impossible();
		return;
	}
	
	int total=arr[idx];
	for(int i=1;i<K;i++) {
		if(arr[i]==-1) arr[i] = skim(i);
		total += arr[i];
	}
	
	if(A<=total && total<=2*A) {
		vector<ll> ans; for(int i=1;i<K;i++) ans.push_back(i);
		ans.push_back(idx);
		answer(ans);
		return;
	}
	
	total-=arr[idx];
	total+=arr[K];
	set<ll> ans; 
	for(int i=1;i<=K;i++) ans.insert(i);
	if(idx==N && arr[N]<A) {
		idx++;
	}
	
	if(A<=total && total<=2*A) {
		vector<ll> ansv; for(ll x: ans) ansv.push_back(x);
		answer(ansv);
		return;
	}
	
	for(int i=1;i<=K;i++) {
		if(idx-i>K) {
			if(arr[idx-i]==-1) arr[idx-i] = skim(idx-i);
			total-= arr[i];
			total+= arr[idx-i];
			ans.insert(idx-i);
			ans.erase(i);
		}
		
		
		//for(int x: ans) cout<<x<<" ";
		//cout<<"\ntotal: "<<total<<"\n";
		if(A<=total && total<=2*A) {
			vector<ll> ansv; for(ll x: ans) ansv.push_back(x);
			answer(ansv);
			return;
		}
	}
	
    impossible();
}

Compilation message (stderr)

books.cpp: In function 'void solve(int, int, long long int, int)':
books.cpp:38:24: error: could not convert 'ans' from 'vector<long long int>' to 'vector<int>'
   38 |                 answer(ans);
      |                        ^~~
      |                        |
      |                        vector<long long int>
books.cpp:52:24: error: could not convert 'ansv' from 'vector<long long int>' to 'vector<int>'
   52 |                 answer(ansv);
      |                        ^~~~
      |                        |
      |                        vector<long long int>
books.cpp:70:32: error: could not convert 'ansv' from 'vector<long long int>' to 'vector<int>'
   70 |                         answer(ansv);
      |                                ^~~~
      |                                |
      |                                vector<long long int>