infoarena

infoarena - concursuri, probleme, evaluator, articole => PreOJI 2016 => Subiect creat de: Adrian Budau din Februarie 27, 2016, 09:46:53



Titlul: Permuta
Scris de: Adrian Budau din Februarie 27, 2016, 09:46:53
Aici se pot pune întrebări legate de problema Permuta (http://www.infoarena.ro/problema/Permuta) de la Clasa a 9-a (http://www.infoarena.ro/preoji2016/9) a concursului PreOJI 2016 (http://www.infoarena.ro/preoji2016).


Titlul: Răspuns: Permuta
Scris de: Iancu Vlad din Septembrie 09, 2017, 17:35:21
puteti sa-mi spuneti ce e in neregula cu urmatoarea sursa?
<code>
#include<iostream>
#include<fstream>
#include<math.h>
#include<iomanip>
using namespace std;
ifstream fin("permuta.in");
ofstream fout("permuta.out"); //Logica:in vectorul b sunt mai intati elementele de pe pozitiile divizibile cu
                              //2^0 apoi cele de pe pozitiile divizibile cu 2^1
                             //samd
const int NMax=100000;
int N;
int a[NMax+5], b[NMax+5];
void Read()
{for(int i=1;i<=N;i++) fin>>b;
}


void permuta()
{
 int pw=1;
 int ind=1;
 while(pow(2,pw-1)<=N)
 {int i;
  for(i=pow(2,pw-1);i<=N;i+=pow(2,pw),ind++) a=b[ind];

  pw++;

 }
 
}
 
 int main(){
 fin>>N; Read();
 permuta();
 
 for(int i=1;i<=N;i++) fout<<resetiosflags(ios::skipws)<<a<<' ';
 

 return 0;}
</code>