C++ zadatak infokup 2015 / skolsko

poruka: 3
|
čitano: 1.799
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
9 godina
neaktivan
offline
C++ zadatak infokup 2015 / skolsko

Poz,

 

Rjesavam treci zadatak koji je bio na infokupu ove godine na skolskom natjecanju. Moje rjesenje radi samo ako je broj auta 1, ali trebalo bi i za ostale brojeve, al nikako ne mogu naci gresku ._.

Moj kod:

 

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int p,k,l;
string s, sZvjezdice;

int najmanji(int l)
{
int maxi=-1,maxiPos=-1;
int sum=0;
for(int i=0;i<p-(l-1);++i)
{
sum=0;
for(int j=i;j<i+l;++j)
{
if(sZvjezdice[j]=='.')
{
//cout<<'.';
++sum;
}
}
//cout << sum << endl;
if(sum>maxi)
{
maxi=sum;
maxiPos=i;
}
}

return maxiPos;
}


void postaviNaZvjezdice(int i,int n)
{
for(int ii=i;ii<n+i;++ii)
{
sZvjezdice[ii]='#';
}
}

void postaviNaTockice(int i,int n)
{
for(int ii=i;ii<n+i;++ii)
{
s[ii]='.';
}
}

bool provjera()
{
int br=0;
int kk=0;
for(int i=0;i<s.size();++i)
{
if(br>=l)
{
br=0;
++kk;
}

if(s[i]=='.')
{
++br;
}
}


//cout << 'k' << 'k' << kk << endl << 'k' << k << endl;
if(kk>=k)
return 1;
return 0;
}

 

 

 

 

 

int main(int argc, char *argv[])
{

cin>>p>>k>>l;
cin>>s;
sZvjezdice=s;


int rjesenje=0;

for(;1;)
{
if(provjera())
{
break;
}

int najm = najmanji(l);
//cout << najm << endl;
postaviNaTockice(najm,l);
postaviNaZvjezdice(najm,l);
//cout << s << endl;
++rjesenje;
}

cout << s << endl;
//cout << sZvjezdice << endl;
cout << rjesenje;
cout << endl;

system("PAUSE");
return 0;
}

 

U potprogramu 'provjera' na kraju kod usporedbe kk sa k bi mozda mogla biti greska, al mozda i negdje drugdje.

 

LP

 
0 0 hvala 0
10 godina
neaktivan
offline
C++ zadatak infokup 2015 / skolsko

Razred?

You dont make 500 million friends without a few enemies.
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
C++ zadatak infokup 2015 / skolsko

raz 3.i 4.

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice