Buna, am rezolvat problema #521 kSecventa de pe pbinfo. Imi poate explica cineva logica formulelor pt. variabilele start1 si start2 din acest cod???? Nu inteleg cum s a ajuns la ele..
#include
using namespace std;
int main()
{
int n,i,j,start1,start2,k,a[1001];
cin >>n;
cin >>k;
for (i=1; i<=n;i++)
cin >>a[i];
bool eBun;
for (i=0; i
{
start1=(i-1)*(n/k)+1;
cout <<"start1"<<" "<
for (j=i+1; j<=k;j++)
{
start2=(j-1)*(n/k)+1;
cout <<"start2"<<" "<
eBun=true;
//ne trebuie o secventa care sa extraga acelasi numar de elemente din vector si sa le grupeze in secvente distincte
for (int p=0; p
if (a[start1+p]!=a[start2+p])
{
eBun=false;
break;
}
if (eBun)
{cout <
return 0;
}
}
}
cout <<"NU";
return 0;
}
Multumesc!!!!
https://pastebin.com/up6yaVkH
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int n,k,secvi,secvj,starti,startj,p,a[1001], i, ok;
int main()
{
cin >> n >> k;
for (i=1; i<=n; ++i) cin >> a[i];
for (secvi=1; secvi<k; ++secvi)
{
starti=(secvi-1)*(n/k)+1;
for (secvj=secvi+1; secvj<=k; ++secvj)
{
startj=(secvj-1)*(n/k)+1;
ok=1;
for (p=0; p<n/k; ++p )
{
if (a[starti+p]!=a[startj+p])
{ ok=0; break; }
}
if (ok)
{
cout << secvi << " " << secvj;
return 0;
}
}
}
if (ok==0) cout << "NU";
}
Explicație:
cercetează codul meu că e mai simplu, cred eu :)))
secvi e secvenţa parcursă parcă de i (e o parabolă)
secvj e secvenţa de parcă parcursă de j
starti e indicele primului număr din secvi
startj este indicele primului număr din secvj
p va parcurge valori de la 0 la n/k-1 şi astfel
starti+p sunt indicii numerelor din secvi, iar
startj+p sunt indicii numerelor din secvj
Să facem puţină mate cu formula starti=(secvi-1)*(n/k)+1;
fiecare secvenţă are n/k numere, 15/5=3 numere în secvenţă.
Dacă secvi=1, at. starti=(1-1)*(3)+1=1, adică start1 e poziţionat pe primul număr din secvenţa1, care acum se numeşte secvi
Dacă secvi=2, at. starti=(2-1)*3+1=4, adică starti este poyiţionat pe al patru-lea număr, care este primul din secvenţa a doua ....
Şi analog se fac calculele şi pentru startj
Sper să fiu înţeles....