ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#183645 | #3292. 解方程 | gaojieming | 100 | 18ms | 3644kb | C++11 | 1.1kb | 2023-08-09 12:29:51 | 2023-08-09 12:41:18 |
answer
#include<bits/stdc++.h>
#define ll long long
#define il inline
#define pn putchar('\n')
#define maxint 2147483647
#define min(x,y) (x<y?x:y)
#define max(x,y) (x>y?x:y)
#define int ll
#define mod 1000000009
#define Mod 1000000008
using namespace std;
int a,b,c,k,ans,lim,len;
string s;
il int ksm(int x,int y)
{
int ret=1;
while(y)
{
if(y&1)ret=ret*x%mod;
x=x*x%mod,y>>=1;
}
return ret;
}
signed main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
scanf("%lld%lld%lld",&a,&b,&c);
cin>>s;
len=s.size()-1;
s[len]++;
k=len;
while(k&&s[k]>'9')
s[k-1]++,s[k]='0',k--;
if(s[0]>'9')
s[0]='0',s='1'+s,len++;
k=0;
for(int i=0,len=s.size();i<len;i++)
k=(k*10+s[i]-'0')%Mod;
if(!a)
return printf("%lld\n",ksm(2,k)+1),0;
int x=c-b*b/4/a;
if(len<=2&&s[0]<='4'&&x>(1LL<<k))
return puts("0"),0;
if(b*b==4*a*(c-x))
ans=-1;
if(x<=0)
return printf("%lld",(ans+(ksm(2,k)+1)*2)%mod),0;
printf("%lld",((ans+(ksm(2,k)-x+1)*2)%mod+mod)%mod);
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 2ms
memory: 3584kb
input:
1 0 0 0
output:
5
result:
ok 1 number(s): "5"
Test #2:
score: 10
Accepted
time: 2ms
memory: 3460kb
input:
3 100 833 5
output:
130
result:
ok 1 number(s): "130"
Test #3:
score: 10
Accepted
time: 2ms
memory: 3588kb
input:
9 -6 9 8
output:
1009
result:
ok 1 number(s): "1009"
Test #4:
score: 10
Accepted
time: 2ms
memory: 3484kb
input:
1 0 100000000 10
output:
0
result:
ok 1 number(s): "0"
Test #5:
score: 10
Accepted
time: 2ms
memory: 3524kb
input:
12345678 49382712 149382712 51132
output:
92705267
result:
ok 1 number(s): "92705267"
Test #6:
score: 10
Accepted
time: 2ms
memory: 3512kb
input:
852142144 -275922144 -239976011 71717
output:
806540913
result:
ok 1 number(s): "806540913"
Test #7:
score: 10
Accepted
time: 1ms
memory: 3584kb
input:
294742012 -842100294 -218428244 93259
output:
230661903
result:
ok 1 number(s): "230661903"
Test #8:
score: 10
Accepted
time: 2ms
memory: 3568kb
input:
0 233938664 570351080 575682494800723352398446417726508858292996711688659600449935551868934219314003...
output:
58568036
result:
ok 1 number(s): "58568036"
Test #9:
score: 10
Accepted
time: 2ms
memory: 3524kb
input:
4 -8 233336666 2147952212656569821709560660627066690497799759854334384627730367299502375599345209847...
output:
533326694
result:
ok 1 number(s): "533326694"
Test #10:
score: 10
Accepted
time: 1ms
memory: 3644kb
input:
487288166 780315563 531124822 4147751811419085946314721833984534878654011573733147442996404991683678...
output:
38208449
result:
ok 1 number(s): "38208449"