Здравствуйте, я не знаю, что не так с конкретным случаем, когда размер вектора равен 1. и значение в векторе такое же, как n. Так что в этом случае этот код всегда должен возвращать ноль. Но он возвращает другое большое значение для большого случая. Хотя я не знаю точно, какой это случай, но я знаю, что для этого случая размер вектора равен единице, а значение этого элемента равно n. мод 1000000009 вот код
ll powerm(ll x, ll y, ll p)
{
if(y==0)
{
return 1;
}
ll res=powerm(x,y/2,p);
if(y%2==0)
{
return ((res%p)*(res%p))%p;
}
else
{
ll val=((res%p)*(res%p));
return ((val%p)*(x%p))%p;
}
}
int main()
{
vector <ll> s;
//there is some algo in between but after that vector contains just one element and value is n.
for(ll i=0;i<s.size();i++)
{
ans+=powerm(s[i],k,mod);
ans%=mod;
cur+=s[i];
}
ans-=cur;
if(ans<0)
{
ans+=mod;
}
ans+=n;
ans%=mod;
ll fans=powerm(n,k,mod);
fans-=ans;
if(fans<0)
{
fans+=mod;
}
cout<<fans<<endl;