UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#195623#3420. 对抗游戏ddh123100403ms25568kbC++11906b2023-10-18 19:47:182023-10-18 22:27:14

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define base 1145141
#define mod 100000007
int n,q,l,r,fac1[1000005],fac2[1000005],P[1000005];
char s[1000005];
int read(){
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
		x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
	return x*f;
}
int calc1(int l,int r){
	return (fac1[r]-fac1[l-1]*P[r-l+1]%mod+mod)%mod;
}
int calc2(int l,int r){
	return (fac2[l]-fac2[r+1]*P[r-l+1]%mod+mod)%mod;
}
signed main(){
	n=read(),q=read();
	scanf("%s",s+1);
	P[0]=1;
	for(int i=1;i<=n;i++)
		P[i]=P[i-1]*base%mod;
	for(int i=1;i<=n;i++)
		fac1[i]=(fac1[i-1]*base+s[i]-'a'+1)%mod;
	for(int i=n;i;i--)
		fac2[i]=(fac2[i+1]*base+s[i]-'a'+1)%mod;
	while(q--){
		l=read(),r=read();
		puts(calc1(l,r)==calc2(l,r)||(r-l)%2?"Budada":"Putata");
	}
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1168kb

input:

10 10
lblbyybtft
5 6
1 3
7 7
1 3
1 3
8 10
4 4
7 10
3 5
7 9

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Putata
Putata

result:

ok 10 lines

Test #2:

score: 10
Accepted
time: 2ms
memory: 1172kb

input:

10 10
jjwwnnddhh
5 6
1 2
7 8
7 8
7 8
1 2
1 2
1 2
5 6
7 8

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada

result:

ok 10 lines

Test #3:

score: 10
Accepted
time: 2ms
memory: 1168kb

input:

10 10
qwqeemhmzx
2 6
9 9
6 7
9 9
1 3
7 8
6 8
10 10
2 10
2 6

output:

Putata
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Putata
Putata

result:

ok 10 lines

Test #4:

score: 10
Accepted
time: 0ms
memory: 1172kb

input:

10 10
mcmfpppppo
8 8
2 5
1 4
2 9
3 10
6 7
1 6
3 7
3 9
5 5

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Putata
Putata
Budada

result:

ok 10 lines

Test #5:

score: 10
Accepted
time: 0ms
memory: 1192kb

input:

1000 1000
egdbcjlrbuipkawdbhopiftkennnnektfipohbdwakpiubrljcbdgeofdbfqiuuiqfbdfoizwlorhtwrcganhbqspk...

output:

Putata
Putata
Budada
Budada
Putata
Putata
Putata
Putata
Putata
Budada
Putata
Putata
Budada
Budada
Pu...

result:

ok 1000 lines

Test #6:

score: 10
Accepted
time: 0ms
memory: 1192kb

input:

1000 1000
wuxigmyxyangcznnjctldollwhrlxxxurvfqhhqfvruxxxlrhwllodltcjnnzcgnayxymgixuwxgynrakxuiepswlk...

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Putata
Budada
Bu...

result:

ok 1000 lines

Test #7:

score: 10
Accepted
time: 0ms
memory: 1192kb

input:

1000 1000
ocyjgahmrewbwafqlrdwcvvmyjcwsijhocrdxcrylwwxspxijtdjjdtjixpsxwwlyrcxdrcohjiswcjymvvcwdrlqf...

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Bu...

result:

ok 1000 lines

Test #8:

score: 10
Accepted
time: 0ms
memory: 1196kb

input:

1000 1000
ytmyiamvpbtypwqpgtonwjeoejwnotgpqwpytbpvmaiymtyysjbjnjkqzrsrhhwjkmxqxesgkiybjeevxnqxklkqac...

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Bu...

result:

ok 1000 lines

Test #9:

score: 10
Accepted
time: 204ms
memory: 25568kb

input:

1000000 1000000
yfwuqhbatapgckxgynamtcotrqxcqcyrzvljxmzkhcwosomskmzhrolfojphwtrdxnhnpqzawsjdriqjmtph...

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Putata
Bu...

result:

ok 1000000 lines

Test #10:

score: 10
Accepted
time: 195ms
memory: 25568kb

input:

1000000 1000000
ntlhxklgvpuxdgmoajdozchlawxeemyxmruewqnhlycyxxgetzduqfhesxvllghacabbbdnbhpfrwycglgbx...

output:

Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Budada
Bu...

result:

ok 1000000 lines

Extra Test:

score: 0
Extra Test Passed