Cod sursa(job #2261394)

Utilizator Yoyo1912Ursoiu Ioana Yoyo1912 Data 16 octombrie 2018 10:46:31
Problema Text Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <bits/stdc++.h>

using namespace std;
int a[20003],i,k,sum,sol,sol1,j,put4[190],n;
ifstream f("patru.in");
ofstream g("patru.out");
bool cautbin(int x)
{
    int st=1;
    int dr=180;
    int mij=0;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(put4[mij]==x)
            return true;
        else if(put4[mij]<x)
        {
            st=mij+1;
        }
        else dr=mij-1;
    }
    return false;
}
int last(int x)
{
    x=(x*x)%10;
    x=(x*x)%10;
    x=(x*x)%10;
    x=(x*x)%10;
    return x;
}
int main()
{
    f>>n>>k;
    for(i=1;i<=n;i++)
    f>>a[i];
    for(i=1;i<=180;i++)
    put4[i]=pow(i,4);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=180;j++)
        {
            if(cautbin(a[i]-put4[j]))
            {
                sol++;
                break;
            }
        }
    }
    for(i=1;i<=k;i++)
    {
        sum=sum+last(a[i]);
    }
    if(sum%10==4)
        sol1++;
    for(i=k+1;i<=n;i++)
    {
        sum+=last(a[i]);
        sum-=last(a[i-k]);
        if(sum%10==4)
            sol1++;
    }
    g<<sol<<'\n'<<sol1;
    return 0;
}