ZOJ問題
點擊打開鏈接
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3341 Accepted Submission(s): 1002
是否AC的規則如下:
1. zoj能AC;
2. 若字符串形式爲xzojx,則也能AC,其中x可以是N個'o' 或者爲空;
3. 若azbjc 能AC,則azbojac也能AC,其中a,b,c爲N個'o'或者爲空;
這裏的話a=oo b=o c=oo
把a,b,c帶進去翻譯過來是
若oozojoo能AC(當然能AC 根據第1條) 則oozoojoooo也能AC,所以能AC
zooj :
翻譯過來是
若zoj能AC 則zooj能AC
這裏azbojac和azbjc相比 z和j中間+了一個o j後面就+了一個a 而z前面也有一個a
以此類推
如果再執行一次這個規定
那麼z和j中間就+了2個o 後面也+了2個前面的a
...
所以z前面'o'的個數乘以z和j中間o的個數=j後面o的個數。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
#define M 1010
char s[M];
int main()
{
while(~scanf("%s",s))
{
int len=strlen(s)-1;
int i=0,a=0;
while(s[i++]=='o')
a++;
int c=0;
while(s[len--]=='o')
c++;
int p1=0,p2=0,b=0;
for(int j=i-1;j<=len+1;j++)
{
if(s[j]=='z')
p1++;
if(s[j]=='o')
b++;
if(s[j]=='j')
p2++;
}
if(s[i-1]=='z'&&s[len+1]=='j')
{
if(b>0&&b*a==c&&(p1==1)&&(p2==1))
printf("Accepted\n");
else
printf("Wrong Answer\n");
}
else
printf("Wrong Answer\n");
}
return 0;
}