码迷,mamicode.com
首页 > 其他好文 > 详细

洛谷 P1703 那个什么密码2

时间:2017-12-13 23:46:07      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:region   reg   输入输出   new   https   for   cstring   substr   begin   

题目背景

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

标签:region   reg   输入输出   new   https   for   cstring   substr   begin   

原文地址:http://www.cnblogs.com/cangT-Tlan/p/8034865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!