QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#621483#2544. Flatland Currencygrass8cowCompile Error//Python31.4kb2024-10-08 14:51:232024-10-08 14:51:34

Judging History

你现在查看的是最新测评结果

  • [2024-10-08 14:51:34]
  • 评测
  • [2024-10-08 14:51:23]
  • 提交

answer

#include<bits/stdc++.h>
typedef long long ll;

using namespace std;


const int N = 1e5 + 9;
const int M = 3e3;
ll n, X, dp[N * 5], may[5];
pair <ll, ll> pa[N];
vector <ll> v[5];

bool cmp(pair <ll, ll> x, pair <ll, ll> y)
{
	return x.first * y.second < y.first * x.second;
}

void readd()
{
	cin >> n >> X;
	for (ll i = 1; i <= n; i++)
	{
		ll a;
		cin >> a;
		ll x = (a + 4) / 5; ll y = x * 5 - a;
		pa[i] = make_pair(x, y);
		v[y].push_back(x);
	}
}

void solve()
{
	readd();
	for (ll i = 0; i < 5; i++) sort(v[i].begin(), v[i].end());

	sort(pa + 1, pa + n + 1, cmp);
	ll num = X / 5;
	for (ll i = 1; i <= n; i++)
	{
		if (num < pa[i].first) break;
		num -= pa[i].first; may[pa[i].second]++;
	}
	num = X / 5;
	ll ans = X % 5, sum = 0;
	memset(dp, 0x3f, sizeof dp);
	dp[0] = 0;
	for (ll sz = 0; sz < 5; sz++)
	{
		ll l = max(1ll, may[sz] - M);
		ll r = min((ll)v[sz].size(), may[sz] + M);
		for (ll i = 1; i < l; i++)
		{
			ans += sz; num -= v[sz][i - 1];
		}
		for (ll i = l; i <= r; i++)
		{
			for (ll j = sum; j >= 0; j--)
			{
				dp[j + sz] = min(dp[j + sz], dp[j] + v[sz][i - 1]);
			}
			sum += sz;
		}
	}

	for (ll i = sum; i >= 0; i--)
		if (dp[i] <= num)
		{
			ans += i;
			break;
		}
	cout << ans << '\n';

}

int main() 
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int _ = 1;
	while (_--)
		solve();
	return 0;
}

详细

  File "answer.code", line 49
    		ll l = max(1ll, may[sz] - M);
    		           ^
SyntaxError: invalid decimal literal