| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 121450 | TadijaSebez | Linear Garden (IOI08_linear_garden) | C++11 | 26 ms | 6248 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
const int N=1000050;
int mod,po[N];
int CountAll(int n){ return (po[n/2+1]+po[(n+1)/2]-2+mod)%mod;}
int CountLo(int n){ return po[n/2];}
int CountHi(int n){ return po[n/2];}
int CountMid(int n){ return po[(n+1)/2];}
char s[N];
int max(int a, int b){ return a>b?a:b;}
int min(int a, int b){ return a>b?b:a;}
int main()
{
	int n,i;
	scanf("%i %i",&n,&mod);
	scanf("%s",s+1);
	int cnt=0,Min=0,Max=0,sol=0;
	po[0]=1;
	for(i=1;i<=n;i++) po[i]=po[i-1]*2%mod;
	for(i=1;i<=n;i++)
	{
		if(s[i]=='L') cnt++,Max=max(Max,cnt),Min=min(Min,cnt);
		else
		{
			if(Max-Min==2)
			{
				if(cnt==Min)
				{
					sol+=CountMid(n-i);
					if(sol>=mod) sol-=mod;
				}
				else if(cnt!=Max)
				{
					sol+=CountHi(n-i);
					if(sol>=mod) sol-=mod;
				}
			}
			else if(Max-Min==1)
			{
				if(cnt==Min)
				{
					sol+=CountMid(n-i)+CountHi(n-i)-1+mod;
					while(sol>=mod) sol-=mod;
				}
				else
				{
					sol+=CountHi(n-i);
					if(sol>=mod) sol-=mod;
				}
			}
			else
			{
				sol+=CountMid(n-i)+CountHi(n-i)-1+mod;
				while(sol>=mod) sol-=mod; 
			}
			cnt--;
			Max=max(Max,cnt);
			Min=min(Min,cnt);
			//printf("%i: %i\n",i,sol);
		}
	}
	sol++;
	if(sol>=mod) sol-=mod;
	printf("%i\n",sol);
	return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
