Pagini recente » Cod sursa (job #1915087) | Cod sursa (job #204032) | Cod sursa (job #2903818) | Cod sursa (job #66734) | Cod sursa (job #20714)
Cod sursa(job #20714)
#include <fstream>
#include <set>
using namespace std;
set<int> s;
bool contains(int i, int c, int k)
{
int count = 0;
while(i>0)
{
if(i%10 == c)
++count;
if(count == k)
return true;
i/=10;
set<int>::iterator iter = s.find(i);
if(iter != s.end())
return true;
}
return false;
}
int main(void)
{
ifstream in;
ofstream out;
in.open("cifre.in", ios::in);
out.open("cifre.out", ios::out);
int a,b,c,k;
in >> a >> b >> c >> k;
int count = 0;
int lastinserted = 0;
for(int i=a;i<=b;++i)
{
if(contains(i, c, k))
{
++count;
if(lastinserted == 0)
{
s.insert(i);
lastinserted = i;
}
if(i-lastinserted == 10)
{
s.insert(i);
lastinserted = i;
}
}
}
float f = (float)count / (b-a+1);
out.precision(4);
out << f;
in.close();
out.close();
return 0;
}