結果
問題 | No.18 うーさー暗号 |
ユーザー |
![]() |
提出日時 | 2019-05-20 02:36:07 |
言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 960 bytes |
コンパイル時間 | 828 ms |
コンパイル使用メモリ | 129,896 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-30 14:07:23 |
合計ジャッジ時間 | 1,508 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 13 |
ソースコード
#include<iostream>#include<string>#include<algorithm>//ABCDEFGHIJKLMNOPQRSTUVWXYZconst std::string alp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";auto index(const char c){auto it = std::find(alp.begin(), alp.end(),c);return std::distance(alp.begin(), it);}using ui = unsigned int;int main(){std::string s;std::cin >> s;for(decltype(s.size()) i{}; i<s.size(); ++i){// std::cout << i<<"\n";const ui v = index(s[i]);// std::cout << v<<"\n";const ui x = (i+1) % alp.size();//移動量//復号後のalphabet indexui decoded = v>=x ? v-x : v+alp.size()-x;/*if(decoded != 25)std::cout <<alp[v]<<" "<< v <<" "<< x <<"\n";*/// std::cout <<i<<" "<< x <<" "<< v<<" "<<(v+alp.size())-x<<" "<< decoded <<" ";std::cout << alp[decoded];// std::cout << "\n";}std::cout <<"\n";return 0;}