Submission #405429

# Submission time Handle Problem Language Result Execution time Memory
405429 2021-05-16T11:30:55 Z cgiosy Linear Garden (IOI08_linear_garden) C
100 / 100
6 ms 1244 KB
main() {
	int N, M, X=0, Y=1;
	scanf("%d%d ", &N, &M);
	char S[N+1];
	gets(S);
	for(int i=0, t=0, l=0, r=0; i<N; i++) {
		X<<=N-i-1&1;
		X=X>=M ? X-M : X;
		if(S[i]=='P') {
			if(t==l && r-l<2) X+=2+(N-i-1&1), Y--;
			else if(t<l+2) X++;
			if(l>--t) l=t;
		} else if(r<++t) r=t;
	}
	printf("%d", (X+Y%M+M)%M);
}

Compilation message

linear_garden.c:1:1: warning: return type defaults to 'int' [-Wimplicit-int]
    1 | main() {
      | ^~~~
linear_garden.c: In function 'main':
linear_garden.c:3:2: warning: implicit declaration of function 'scanf' [-Wimplicit-function-declaration]
    3 |  scanf("%d%d ", &N, &M);
      |  ^~~~~
linear_garden.c:3:2: warning: incompatible implicit declaration of built-in function 'scanf'
linear_garden.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
  +++ |+#include <stdio.h>
    1 | main() {
linear_garden.c:5:2: warning: implicit declaration of function 'gets' [-Wimplicit-function-declaration]
    5 |  gets(S);
      |  ^~~~
linear_garden.c:7:10: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
    7 |   X<<=N-i-1&1;
      |       ~~~^~
linear_garden.c:10:31: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
   10 |    if(t==l && r-l<2) X+=2+(N-i-1&1), Y--;
      |                            ~~~^~
linear_garden.c:15:2: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
   15 |  printf("%d", (X+Y%M+M)%M);
      |  ^~~~~~
linear_garden.c:15:2: warning: incompatible implicit declaration of built-in function 'printf'
linear_garden.c:15:2: note: include '<stdio.h>' or provide a declaration of 'printf'
/usr/bin/ld: /tmp/ccY6jFNe.o: in function `main':
linear_garden.c:(.text.startup+0x83): warning: the `gets' function is dangerous and should not be used.
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 460 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 588 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 716 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 844 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 1244 KB Output is correct
2 Correct 5 ms 1228 KB Output is correct
3 Correct 4 ms 1228 KB Output is correct