5033 2023. 04. 10 10:31:03 horvathabel Házszámok cpp17 Időlimit túllépés 0/100 298ms 5624 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
vector<int>darab;
int n;
bool check(int x){
    int a=x;
    vector<int> valt;
    vector<int> db;
    db.resize(n,0);
    while (x>0){
        valt.push_back(x%n);
        x/=n;
    }
    int kell=pow(n,valt.size()-1);

    reverse(valt.begin(), valt.end());
    for (int i=0; i<n;i++){
        db[i]=kell;
    }
    int cnt=a-(kell-1);
    int szamlalo=1;
    for (int i=1; i<=valt.size();i++){
        int h=0;
        db[0]-=szamlalo;

        if (i==valt.size()){
            h=1;
            db[0]+=szamlalo;
        }
        for (int j=1; j<=cnt;j++){
            db[h]++;
            if (j%szamlalo==0){
                h++;
                if (h==n) h=0;
            }
        }
        szamlalo*=n;
    }
    for (int i=0; i<n;i++){
        if (db[i]>darab[i]) return false;
    }
    return true;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin>>n;

    for (int i=0; i<n;i++){
        int x;
        cin>>x;
        darab.push_back(x);
    }
    int l=0, r=1e12;
    while (l<r){
        int m=(l+r)/2;
        if (check(m)){
            l=m;
        }
        else{
            r=m;
        }
        cout<<r<<" "<<m<<endl;
    }
    cout<<r<<endl;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Időlimit túllépés 246ms 1080 KiB
2 Időlimit túllépés 264ms 1256 KiB
3 Időlimit túllépés 263ms 1556 KiB
subtask2 0/25
4 Időlimit túllépés 280ms 2420 KiB
5 Időlimit túllépés 264ms 2636 KiB
6 Időlimit túllépés 273ms 3024 KiB
7 Időlimit túllépés 298ms 3168 KiB
8 Időlimit túllépés 256ms 3240 KiB
9 Időlimit túllépés 263ms 3472 KiB
10 Időlimit túllépés 268ms 2748 KiB
11 Időlimit túllépés 264ms 3716 KiB
12 Időlimit túllépés 247ms 3788 KiB
13 Időlimit túllépés 275ms 3784 KiB
14 Időlimit túllépés 263ms 3824 KiB
15 Időlimit túllépés 284ms 3824 KiB
16 Időlimit túllépés 284ms 3968 KiB
17 Időlimit túllépés 250ms 4208 KiB
18 Időlimit túllépés 280ms 4340 KiB
19 Időlimit túllépés 244ms 4452 KiB
subtask3 0/10
20 Időlimit túllépés 287ms 4536 KiB
21 Időlimit túllépés 203ms 4652 KiB
22 Időlimit túllépés 259ms 4664 KiB
23 Időlimit túllépés 268ms 4668 KiB
24 Időlimit túllépés 268ms 4760 KiB
subtask4 0/15
25 Időlimit túllépés 256ms 4752 KiB
26 Időlimit túllépés 272ms 4760 KiB
27 Időlimit túllépés 273ms 4756 KiB
28 Időlimit túllépés 259ms 5036 KiB
29 Időlimit túllépés 268ms 5084 KiB
30 Időlimit túllépés 256ms 5092 KiB
31 Időlimit túllépés 268ms 5212 KiB
32 Időlimit túllépés 280ms 5288 KiB
33 Időlimit túllépés 263ms 5424 KiB
subtask5 0/20
34 Időlimit túllépés 280ms 5320 KiB
35 Időlimit túllépés 275ms 5208 KiB
36 Időlimit túllépés 268ms 5204 KiB
37 Időlimit túllépés 263ms 5212 KiB
38 Időlimit túllépés 275ms 5212 KiB
39 Időlimit túllépés 236ms 5324 KiB
40 Időlimit túllépés 280ms 5432 KiB
41 Időlimit túllépés 244ms 5432 KiB
42 Időlimit túllépés 268ms 5324 KiB
subtask6 0/30
43 Időlimit túllépés 239ms 5340 KiB
44 Időlimit túllépés 252ms 5248 KiB
45 Időlimit túllépés 246ms 4664 KiB
46 Időlimit túllépés 275ms 5352 KiB
47 Időlimit túllépés 280ms 5468 KiB
48 Időlimit túllépés 279ms 5368 KiB
49 Időlimit túllépés 263ms 5368 KiB
50 Időlimit túllépés 275ms 5476 KiB
51 Időlimit túllépés 268ms 5376 KiB
52 Időlimit túllépés 272ms 4688 KiB
53 Időlimit túllépés 280ms 5624 KiB
54 Időlimit túllépés 272ms 5592 KiB
55 Időlimit túllépés 270ms 5404 KiB
56 Időlimit túllépés 254ms 5468 KiB
57 Időlimit túllépés 263ms 5476 KiB
58 Időlimit túllépés 268ms 5480 KiB
59 Időlimit túllépés 264ms 5488 KiB
60 Időlimit túllépés 273ms 5392 KiB