ENCRYPT - Mã hóa mật khẩu

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Hiện nay, với sự bùng nổ của công nghệ thông tin, mỗi cá nhân đều có cho mình một số tài khoản (tài khoản facebook, tài khoản e-mail, tài khoản twitter…). Các tài khoản này đều cần được bảo vệ bằng các mật khẩu. Một vấn đề quan trọng là cần có biện pháp bảo vệ các mật khẩu đó “an toàn” để tránh bị đánh cắp tài khoản.

Tèo luôn chọn cho mình những mật khẩu gồm một số chữ cái la-tinh đứng đầu (không quá ~10~ chữ cái) và đem ghép vào cuối một số nguyên dương trong hệ thập phân (không quá ~6~ chữ số). Ví dụ: Abcd12. Sau đó Tèo mã hóa mật khẩu bằng cách tách phần số ở cuối, giữ lại phần chữ cái ở đầu và đem chèn vào giữa các chữ cái đó (có thể cả ở đầu và ở cuối) một số chữ số từ ~0~ đến ~9~ sao cho tổng các chữ số được chèn đúng bằng số ở cuối của mật khẩu. Ví dụ: A1b23c4d2 là một cách mã hóa của mật khẩu Abcd12 (các chữ số được dùng để chèn là ~1 + 2 + 3 + 4 + 2 = 12~).

Bạn hãy giúp Tèo viết một chương trình giải mã mật khẩu nhé?

Input

  • Một dòng duy nhất chứa xâu ký tự mật khẩu đã mã hóa chỉ gồm các chữ cái la-tinh và chữ số.

Giới hạn:

  • Độ dài xâu mã hóa không quá ~10^5~ ký tự trong đó có chứa ít nhất một chữ cái la-tinh và ít nhất một chữ số khác ~0~.

Output

  • Ghi ra một dòng duy nhất là mật khẩu giải mã được.

Sample

Input #1
A1b23c4d2
Output #1
Abcd12

Problem source: Chuyên Sơn La Online Judge


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    tapcode59  đã bình luận lúc 7, Tháng 3, 2024, 9:20

    include<bits/stdc++.h>

    using namespace std;

    int main(){ ios::syncwithstdio(0); cin.tie(0); cout.tie(0); string encry; cin >> encry; string res = ""; int len = encry.size(); long long sum = 0; for(int i = 0; i < len ; i++) { if(encry[i]>='0' && encry[i]<='9'){ sum += encry[i] -48; } else res += encry[i];
    } cout << res << sum; }


  • 0
    hoangvanthong  đã bình luận lúc 5, Tháng 3, 2024, 13:15

    .


  • 0
    lqDung  đã bình luận lúc 18, Tháng 12, 2023, 14:16

    Không rõ tại sao nhưng trong ngôn ngữ c, hàm fgets không qua được test 10


    • 1
      hieugiangho2015  đã bình luận lúc 18, Tháng 2, 2024, 11:53

      string s; getline(cin,s); string res = ""; int digit = 0; for(int i = 0 ; i < s.size() ; i++){ if(isdigit(s[i])){ digit += s[i] - '0'; }else if(isalpha(s[i])){ res+=s[i]; } } cout<<res+to_string(digit);


    • 3
      chinhle  đã bình luận lúc 10, Tháng 2, 2024, 19:08

      nghĩ đơn giản thôi á duyệt dãy rồi tạo 2 biến m n biến n đặt kiểu int còn biến m đặt kiểu str rồi kiểm tra xem a[i] có phải số không phải thì n += int(a[i]) còn không m += a[i] rồi in ra m+str(n)