help
查看原帖
help
1024213
albertting楼主2024/5/26 20:23

WA on #9,90pts

#include <bits/stdc++.h>
using namespace std;

int n, m, l[100005], s[100005];

void make()
{
    for(int i = 2; i <= n; i++)
        l[i] = (l[i - 1] * 37011 + 10193) % 10000 + 1;
    for(int i = 2; i <= n; i++)
        s[i] = (s[i - 1] * 73011 + 24793) % 100 + 1;
}

int main()
{
    scanf("%d %d %d %d", &n, &m, &l[1], &s[1]);
    make();
    for(int i = 1; i <= n; i++)
    {
        bool f = 1;
        for(int j = i + 1; j <= n; j++)
        {
            if(l[i] < l[j])
            {
                swap(l[i], l[j]);
                swap(s[i], s[j]);
                f = 0;
            }
        }
        if(f) break;
    }
    //printf("%d\n", l[2]);
    for(int i = l[1]; i >= 1; i--)
    {
        int sum = 0;
        for(int j = 1; l[j] >= i; j++)
        {
            sum += l[j] / i * s[j];
            //printf("%d\n", l[j] / i * s[j]);
        }
        if(sum >= m)
        {
            printf("%d", i);
                return 0;
        }
        //printf("%d %d\n", i, sum);
    }
    return 0;
}

2024/5/26 20:23
加载中...