Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 39796

ADIGIT wrong answer

$
0
0

I checked all the corner cases but still getting wrong answer...

include<stdio.h>

int main()

{

long int n,m,x,i,c1,c2;
long long int ans;
int j;
scanf("%ld %ld",&n,&m);
char a[n];
long int dp[n][10];
scanf("%s",a);
for(j=0;j<=9;j++)
dp[0][j]=0;
dp[0][a[0]-'0']=1;
for(i=1;i<n;i++)
{
    for(j=0;j<=9;j++)
    {
        if((a[i]-'0')==j)
        dp[i][j]=dp[i-1][j]+1;
        else
        dp[i][j]=dp[i-1][j];
    }
}
while(m--)
{
    scanf("%ld",&x);
    c1=0;
    c2=0;
    ans=0;
    if(x==1)
    printf("%lld\n",a[x-1]-'0');
    else
    {
    for(i=0;i<=9;i++)
    {
        if((a[x-1]-'0')>=i)
        {
            ans=ans-dp[x-2][i]*i;
            c1=c1+dp[x-2][i];
        }
        else
        {
            ans=ans+dp[x-2][i]*i;
            c2=c2+dp[x-2][i];
        }
    }
    printf("%lld\n",(c1-c2)*(a[x-1]-'0')+ans);
}   
}
return 0;

}


Viewing all articles
Browse latest Browse all 39796

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>