洛谷 P1703 那個什麽密碼2
阿新 • • 發佈:2017-12-13
scanf tdi b- range lan problem sin data else
P1703 那個什麽密碼2
題目背景
https://www.luogu.org/problem/show?pid=1079
題目描述
與原題一模一樣、具體不同請見輸入格式
輸入輸出格式
輸入格式:
第一行輸入密鑰
第二行輸入明文
第三行輸入一個正整數M,代表操作個數.
每個操作將[a,b]的字符全部倒轉,比如abc倒轉為cba.
接下來M行,每行輸入兩個正整數a,b。
輸出格式:
輸出一行,輸出密文。
輸入輸出樣例
輸入樣例#1: 復制CompleteVictory Wherethereisawillthereisaway 0輸出樣例#1: 復制
Yvqgpxaimmklongnzfwpvxmniytm
說明
由zxy大神原創、本人在洛谷上傳。
思路:模擬。
吐槽:出題人的語文絕對不及格!!!!!(╯‵□′)╯︵┻━┻ 題目描述一點都不清楚。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; string s,k; int n,miyao[5010]; int main(){ cin>>k>>s; int len=k.length(); for(int i=0;i<len;i++) for(int j=i;j<5010;j+=len){ if(k[i]>=‘A‘&&k[i]<=‘Z‘) miyao[j]=(int)(k[i]-‘A‘); else miyao[j]=(int)(k[i]-‘a‘); } len=s.length(); for(int i=0;i<len;i++){if(s[i]>=‘A‘&&s[i]<=‘Z‘){ if(s[i]+miyao[i]>‘Z‘) s[i]=s[i]+miyao[i]-26; else s[i]=s[i]+miyao[i]; } else{ if(s[i]+miyao[i]>‘z‘) s[i]=s[i]+miyao[i]-26; else s[i]=s[i]+miyao[i]; } } scanf("%d",&n); while(n--){ int a,b; scanf("%d%d",&a,&b); string t1=s.substr(0,a-1); string t2=s.substr(a-1,b-a+1); string t3=s.substr(b,s.length()-b); reverse(t2.begin(),t2.end()); s=t1+t2+t3; } cout<<s<<endl; }
洛谷 P1703 那個什麽密碼2