QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#138694#3589. Invested MoneyRedex89WA 10ms3576kbC++232.8kb2023-08-12 08:28:252023-08-12 08:28:27

Judging History

This is the latest submission verdict.

  • [2023-08-12 08:28:27]
  • Judged
  • Verdict: WA
  • Time: 10ms
  • Memory: 3576kb
  • [2023-08-12 08:28:25]
  • Submitted

answer

#include <bits/stdc++.h>
// Pura gente del coach moy
using namespace std;
#define ENDL '\n'
#define all(x)  x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define sz(x)   (int) x.size()
#define FOR(x, b)     for(int x = 0; x < b; x++)
#define FORE(x, a, b) for(int x = a; x <= b; x++)
#define FORR(x, a, b) for(int x = a; x >= b; x--)
#define deb(x)      cerr << #x << " = " << x << '\n';
#define deb2(x, y)  cerr << #x << " = " << x << ", " << #y << " = " << y << '\n';
#define _ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;
const ll MOD = 1e9+7, INF = 1e18;

unordered_map<string, int> semana;
int dia;

ll getMin(int elapsed){
    int deposito = dia - (elapsed % 7);
    if(deposito < 0)
        deposito += 7;
    // deb2(dia, deposito);
    int ans;
    //Si han pasado 30 dias y hoy no es sabado ni domingo
    if(elapsed == 0){
        if(dia == 5) return 31;
        if(dia == 4) return 32;
        return 30;
    }
    if(elapsed == 30 && dia != 0 && dia != 6)
        return 0;
    //Si han pasado mas de 30 dias ya hubo renovacion
    else if(elapsed > 30){
        //Si se deposito un antes del jueves la proxima renovacion 
        //fue el segundo dia despues 30 dias +
        if(deposito < 4){
            elapsed -= 30;
            deposito += 2;
        }
        //Si se deposito un jueves la proxima renovacion fue un lunes 32 dias +
        if(elapsed > 30 && deposito == 4){
            elapsed = abs(elapsed - 32);
            deposito = 1;
        //Si se deposito un viernes la proxima renovacion fue un lunes 31 dias +
        }else if(elapsed > 30 && deposito == 5){
            deposito = 1;
            elapsed -= 31;
        }
        
        elapsed %= 91;

        while(elapsed > 30){
            elapsed -= 30;
            deposito += 2;
        }
    }
    int res = (deposito + 30) % 7;
    int delta = 0;
    if(res == 6 && elapsed != 0)
        delta = 2;
    else if(res == 0 && elapsed != 0)
        delta = 1;

    if(elapsed == 30 || elapsed == 0){ 
            return delta;
    }else{      
        if(res > 0 && res < 6) ans = 30 - elapsed;
        else if(res == 6) ans = 30 - elapsed + 2;
        else ans = 30 - elapsed + 1; 
    }

    return ans;
}


int main(){_
    string t;
    int n;
    ll d;
    ll ans = 1e18;
    cin >> t >> n;

    semana["Sun"] = 0;
    semana["Mon"] = 1; 
    semana["Tue"] = 2;
    semana["Wed"] = 3;
    semana["Thu"] = 4;
    semana["Fri"] = 5;
    semana["Sat"] = 6;
    
    dia = semana[t];

    FOR(i, n){
        cin >> d;
        ans = min(ans, getMin(d));
    }

    cout<<ans<<ENDL;

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3452kb

input:

Sat 5
5 4 3 1 1

output:

25

result:

ok single line: '25'

Test #2:

score: 0
Accepted
time: 1ms
memory: 3520kb

input:

Fri 91
60 86 79 109 74 120 50 105 121 15 80 24 52 127 57 4 9 102 93 91 46 122 22 8 21 31 67 81 95 88 115 43 78 37 128 28 38 112 99 130 106 49 116 39 108 119 16 84 18 129 114 10 44 123 113 45 29 14 72 23 87 126 56 77 58 30 51 63 70 101 100 7 92 107 64 85 53 25 98 17 71 35 66 32 73 65 94 42 36 59 11

output:

0

result:

ok single line: '0'

Test #3:

score: 0
Accepted
time: 1ms
memory: 3452kb

input:

Sat 91
33 86 37 15 50 101 52 59 10 53 124 80 23 102 39 95 106 26 60 32 16 65 81 71 122 64 123 22 29 116 46 129 79 117 113 30 74 43 75 109 108 58 121 18 8 40 73 57 31 67 115 68 128 88 36 120 89 100 94 110 44 9 99 54 11 5 66 107 47 114 24 61 127 96 85 25 103 82 17 78 130 12 45 38 72 19 93 51 131 87 92

output:

2

result:

ok single line: '2'

Test #4:

score: 0
Accepted
time: 1ms
memory: 3528kb

input:

Sun 91
30 17 103 19 24 12 74 58 73 116 51 102 23 107 101 115 89 69 132 47 114 62 90 118 27 25 20 79 13 46 100 108 9 6 122 54 111 87 97 61 26 11 94 53 38 82 95 32 40 67 10 59 130 37 45 33 96 117 41 65 55 31 110 124 121 39 76 44 34 75 93 88 131 128 129 109 48 104 86 125 80 16 83 68 52 81 72 123 60 18 66

output:

1

result:

ok single line: '1'

Test #5:

score: 0
Accepted
time: 0ms
memory: 3500kb

input:

Tue 54
466997567 832713610 396128276 34149457 893059888 40452010 466926572 870227112 857615746 106193882 834532609 460923177 710229626 89982053 641177115 257457002 489171192 791834201 578232129 153420051 341581265 318800291 507136992 380609404 24764192 195645814 769787913 958962989 405273398 6731136...

output:

1

result:

ok single line: '1'

Test #6:

score: 0
Accepted
time: 1ms
memory: 3524kb

input:

Sat 61
188169805 565893854 353128766 203016509 486515773 840318966 476827725 436695915 860881971 462866357 278773167 696016203 5 257501226 745138332 479712416 283135925 461810193 570661466 303569787 220172503 647788263 623953496 573980597 157637596 162101873 367384923 915486072 697764546 14417040 45...

output:

2

result:

ok single line: '2'

Test #7:

score: 0
Accepted
time: 1ms
memory: 3460kb

input:

Thu 23
869790743 930644095 889701822 874506971 468677196 763966001 833880706 751624502 786609858 30670122 85909341 75813426 327789724 461402852 812525967 326267178 44211272 354054637 1 428816186 157051818 547116167 901650556

output:

4

result:

ok single line: '4'

Test #8:

score: 0
Accepted
time: 1ms
memory: 3524kb

input:

Sun 51
696915558 102127568 179643195 833827619 291476229 666262204 587203578 873447097 665278676 780805449 3 124180500 807744522 616722376 865498591 892480138 516459632 538283951 802714590 866185669 282544771 341867692 782859619 65001663 247301577 545811943 682592136 98742397 464782315 582383955 448...

output:

1

result:

ok single line: '1'

Test #9:

score: 0
Accepted
time: 1ms
memory: 3452kb

input:

Mon 12
652283938 669281394 862577912 4 591702909 405803843 57545257 773225964 54712812 481084827 34659925 534842532

output:

4

result:

ok single line: '4'

Test #10:

score: 0
Accepted
time: 0ms
memory: 3500kb

input:

Tue 39
592097104 596784571 163862781 260192038 205116832 832090678 530328169 989488605 899925608 676707407 61391532 326972588 758950231 462441707 23556156 924721784 173097806 302851564 125295556 6 86602244 882289882 553339347 549287591 648146937 307221046 706059962 679322316 816026084 378325189 3610...

output:

1

result:

ok single line: '1'

Test #11:

score: 0
Accepted
time: 1ms
memory: 3516kb

input:

Wed 31
228972730 346219084 388892351 283470755 848264017 626455635 885949945 482795160 871474451 271932311 664020153 835411355 293325251 638715210 398932147 118451648 903100001 787164513 861601593 841380134 204353340 645041866 0 103835264 44214962 600121139 207114042 239687791 36980572 329454235 270...

output:

0

result:

ok single line: '0'

Test #12:

score: 0
Accepted
time: 1ms
memory: 3524kb

input:

Sat 5
3 1 4 1 5

output:

25

result:

ok single line: '25'

Test #13:

score: 0
Accepted
time: 1ms
memory: 3524kb

input:

Thu 14
87953679 98239844 595382045 0 389797613 155193458 702285219 394234186 274076860 208527839 689480361 488636218 537547296 599174584

output:

1

result:

ok single line: '1'

Test #14:

score: 0
Accepted
time: 1ms
memory: 3468kb

input:

Fri 13
286588757 601781687 775630579 108484195 152191956 77077507 24168825 442637434 236871084 480191580 33540644 2 249824640

output:

0

result:

ok single line: '0'

Test #15:

score: 0
Accepted
time: 1ms
memory: 3544kb

input:

Sat 45
307114981 305684284 930487379 397207870 160462074 127826639 870780088 76858638 740676357 77304804 956876153 840387635 335513007 666130132 88033257 390079043 1 843530642 478328989 339256374 307162986 341951628 462194730 500250929 587481213 212164984 213923041 121655136 992898811 42428807 14837...

output:

2

result:

ok single line: '2'

Test #16:

score: 0
Accepted
time: 1ms
memory: 3464kb

input:

Sun 91
728005896 513292980 395988905 235815960 905587546 499245365 773293301 291930118 33609553 769578486 832970049 367690999 662674297 444954113 288591791 394327191 839077571 546419520 313337118 796699000 466102536 860015350 417122633 206513351 617228254 557350615 270745562 960678788 803830726 2758...

output:

1

result:

ok single line: '1'

Test #17:

score: 0
Accepted
time: 10ms
memory: 3500kb

input:

Thu 100000
866199683 298661386 121977901 831132287 799510028 936838990 429672298 978627583 448150138 331822872 431918851 432640427 814981177 391628447 750629391 418432090 906741382 856029902 867941495 5378913 966665196 542221772 880903759 267218225 368063702 497197161 655842558 856700725 926177688 5...

output:

1

result:

ok single line: '1'

Test #18:

score: 0
Accepted
time: 0ms
memory: 3472kb

input:

Wed 100000
564289865 106533141 247727508 980609243 940193365 54006689 365261254 445976061 9056791 15158989 405324967 151808053 84426425 339707236 746510259 214545023 378862888 589884183 198951207 777659709 482049504 807192603 19371016 372087241 545228150 830883576 104444719 168280505 829329703 80036...

output:

0

result:

ok single line: '0'

Test #19:

score: 0
Accepted
time: 4ms
memory: 3576kb

input:

Mon 100000
18898 37523 68347 58467 33843 105014 85662 121805 33585 5746 127638 68303 105819 91747 32161 122980 55888 126504 13685 84915 70836 80427 58733 124410 16982 55822 54653 123991 77847 7011 62723 15225 89978 13508 83062 134854 50054 16113 115321 101255 22175 11224 91691 81330 92823 135343 489...

output:

0

result:

ok single line: '0'

Test #20:

score: -100
Wrong Answer
time: 8ms
memory: 3528kb

input:

Tue 100000
124541 31298 35301 39030 11051 137759 54544 74113 95726 28931 62048 52903 38736 134561 31014 139957 15391 130653 72867 30412 110583 90675 135959 133659 71841 34333 118207 121097 49881 48780 78083 109999 59308 121104 33746 72384 138838 43911 100759 127974 103881 134205 93374 112740 93493 6...

output:

0

result:

wrong answer 1st lines differ - expected: '1', found: '0'