👤

Am nevoie de problema atbash de pe pbinfo. Atbash
Cifrul atbash este un cifru de substituție care constă în inversarea alfabetului: prima literă din alfabet se interschimbă cu ultima, a doua cu penultima, etc.

Cerința
Se dă un șir s care conține doar litere mari. Să se aplice cifrul atbash pe el.

Date de intrare
Fișierul de intrare atbash.in conține pe prima linie șirul s.

Date de ieșire
Fișierul de ieșire atbash.out va conține pe prima linie șirul după aplicarea cifrului atbash.

Restricții și precizări
1 ≤ lungimea șirului ≤ 1.000.000

Exemplu
atbash.in

ANAAREMERE
atbash.out

ZMZZIVNVIV
Algoritmul meu este urmatorul, acesta dandu-mi doar 70 de puncte:
#include
#include
using namespace std;
char s[256];
ifstream in("atbash.in");
ofstream out("atbash.out");
int main()
{
int a,i,b;
in >> s;
for(i=0;i {


s[i]=90-s[i]+65;
}out << s;
}
De asemenea, cum as putea declara un sir cu 1000000 de caractere fara probleme?


Răspuns :

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("atbash.in");

ofstream g("atbash.out");

char a, b;

int main()

{

   while (f >> a)

   {

        b=155-a;

        g << b;

   }

}

Explicație: