Rezolvare completă PbInfo #1580 schimb

Cerința

Se dau trei numere naturale n, k și p și n șiruri formate din litere mici ale alfabetului englez. Înlocuiți a k-a literă din fiecare șir cu a p-a literă din alfabet. Dacă șirul are mai puțin de k litere se va scrie oglinditul lui.

Date de intrare

Pe prima linie a fișierului schimb.in se află trei numere naturale n, k și p. Pe următoarele n linii se află n șiruri.

Date de ieșire

În fișierul schimb.out se vor scrie noile șiruri, fiecare pe un rând nou.

Restricții și precizări

  • 1 ≤ n, k ≤ 10000
  • 1 ≤ p ≤ 26
  • șirurile au cel mult 500 de caractere

Exemplul 1

schimb.in

2 4 7
abcde
efg

schimb.out

abcge
gfe

Exemplul 2

schimb.in

3 2 3
wqysd
s
sj

schimb.out

wcysd
s
sc

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema schimb:

#include <fstream>
#include <cstring>

using namespace std;
ifstream f("schimb.in");
ofstream g("schimb.out");
char s[2001];
int n, k, p, i, j;
int main()
{
    f>>n>>k>>p;
    for (i=1; i<=n; i++) {
        f.get();
        f.get(s,2001);
        if (strlen(s)<k) {
            for (j=strlen(s)-1; j>=0; j--) g<<s[j];
            g<<'\n';
        }
        else {
            s[k-1]=96+p;
            g<<s<<'\n';
        }
    }
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1580 schimb

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1580 schimb de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!