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
68
69
70
#include <stdio.h>

int nwd(int a,int b)
{
    int c;                
    while(b != 0)        
    {
        c = a % b;      
        a = b;         
        b = c;        
    }
    return a;        
}

main() {
    int i,j=0,k=0,l=0,n=0,m,a;
    char d;
    int lgraczy=0;
    int dlcyklu=0;
    int gracze[1000000];
    int cykl[1000000];
    int licznik, mianownik, koniec;

    scanf("%i",&lgraczy);
    for(i=0;i<lgraczy;i++){
        scanf("%i",&gracze[i]);
//	gracze2[i]=gracze[i];
    }

    scanf("%i\n",&dlcyklu);
    for(i=0;i<dlcyklu;++i) {
        scanf("%c",&d);
	if(d=='W')
	    cykl[i]=1;
	else
	    cykl[i]=-1;
    }
/*
    printf("liczba graczy: %d\n",lgraczy);
    for(i=0;i<lgraczy;i++)
       printf("%d ",gracze[i]);
    printf("\ndlugosc cyklu: %d\n",dlcyklu);
    for(i=0;i<dlcyklu;i++)
       printf("%d ",cykl[i]);


    wspolny mianownik*/
    licznik=0;
    mianownik=lgraczy*dlcyklu;

    m=mianownik/nwd(lgraczy,dlcyklu);

    for(i=0;i>=0;i++,j++,k++) {
          if(j==dlcyklu)
              j=0;
          if(k==lgraczy)
              k=0;
          gracze[k]=gracze[k]+cykl[j];
          if(!gracze[k]) {
              koniec=1;
              break;
          }

    }

    if(koniec) 
       printf("%d",i+1);
    return 0;
    	
}