1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>

using namespace std;

int main()
{
    int n; int m; long long int counter_gier=0;
    cin >> n;
    int tablica_funduszy[n];
    int max_fundusz=0;

    for(int counter=0; counter<n; counter++)
        {
            cin >> tablica_funduszy[counter];
            if(tablica_funduszy[counter]>max_fundusz)
                max_fundusz=tablica_funduszy[counter];
        }
    cin >> m;
    char x;
    int wygrane_tablicy_wygranych[m];

    for(int counter=0; counter<m; counter++)
        {
            cin >> x;
            if(x=='w'||x=='W')
                wygrane_tablicy_wygranych[counter]=1;
            if(x=='p'||x=='P')
                wygrane_tablicy_wygranych[counter]=0;
        }

    int counter_do_tablicy_funduszy=0;
    int counter_do_tablicy_wygranych=0;

    while(true)
        {
            counter_gier++;

            if(wygrane_tablicy_wygranych[counter_do_tablicy_wygranych]==0)
                tablica_funduszy[counter_do_tablicy_funduszy]=tablica_funduszy[counter_do_tablicy_funduszy]-1;

            if(wygrane_tablicy_wygranych[counter_do_tablicy_wygranych]==1)
                tablica_funduszy[counter_do_tablicy_funduszy]=tablica_funduszy[counter_do_tablicy_funduszy]+1;

            if(tablica_funduszy[counter_do_tablicy_funduszy]==0)
                {
                cout << counter_gier;
                return 0;
                }

            counter_do_tablicy_funduszy++;
            counter_do_tablicy_wygranych++;

            if(counter_do_tablicy_funduszy>=n)
                counter_do_tablicy_funduszy=0;

            if(counter_do_tablicy_wygranych>=m)
                counter_do_tablicy_wygranych=0;

            if(counter_gier>n*m*max_fundusz)
                {
                cout << "-1";
                return 0;
                }
        }

    return 0;
}