UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#183645#3292. 解方程gaojieming10018ms3644kbC++111.1kb2023-08-09 12:29:512023-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"