Codeforces Round #529 (Div. 3)
Polycarp loves ciphers. He has invented his own cipher called repeating.
Repeating cipher is used for strings. To encrypt the string s=s1s2…sm (1≤m≤10), Polycarp uses the following algorithm:
he writes down s1 ones,
 he writes down s2 twice,
 he writes down s3 three times,
 …
 he writes down sm m times.
 For example, if s=“bab” the process is: “b” → “baa” → “baabbb”. So the encrypted s=“bab” is “baabbb”.
Given string t — the result of encryption of some string s. Your task is to decrypt it, i. e. find the string s.
Input
 The first line contains integer n (1≤n≤55) — the length of the encrypted string. The second line of the input contains t — the result of encryption of some string s. It contains only lowercase Latin letters. The length of t is exactly n.
It is guaranteed that the answer to the test exists.
Output
 Print such string s that after encryption it equals t.
Examples
 input
 6
 baabbb
 output
 bab
 input
 10
 ooopppssss
 output
 oops
 input
 1
 z
 output
 z
题意:
 给你一段加密的字符串,加密是如果未加密的是s=“bab” 则加密过程是: “b” → “baa” → “baabbb”. 给你baabbb 让你求出是bab;
解题思路:
“b” → “baa” → “baabbb”.
 规律是 第一次 a 复制一次 第二次 b复制两次 则 k次 复制k次;
 简单模拟一下即可
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
#include<math.h>
#define ll long long
using namespace std;
const int MM=1e5+5;
int n;
char s[MM];
int a[MM];
int main()
{
    int t;
    scanf("%d",&t);
    scanf("%s",s);
    int k=0;
    for(int i=0;i<t;)//
    {
        k++;//用来输出我们需要的字符
        cout<<s[i];
        i+=k;//删去第i次复制了i次的字符;
    }
    cout<<endl;
    return 0;
}
B. Array Stabilization
 You are given an array a consisting of n integer numbers.
Let instability of the array be the following value: maxi=1nai−mini=1nai.
You have to remove exactly one element from this array to minimize instability of the resulting (n−1)-elements array. Your task is to calculate the minimum possible instability.
Input
 The first line of the input contains one integer n (2≤n≤105) — the number of elements in the array a.
The second line of the input contains n integers a1,a2,…,an (1≤ai≤105) — elements of the array a.
Output
 Print one integer — the minimum possible instability of the array if you have to remove exactly one element from the array a.
Examples
 input
 4
 1 3 3 7
 output
 2
 input
 2
 1 100000
 output
 0
 Note
 In the first example you can remove 7 then instability of the remaining array will be 3−1=2.
In the second example you can remove either 1 or 100000 then instability of the remaining array will be 100000−100000=0 and 1−1=0 correspondingly.
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
#include<math.h>
#define ll long long
using namespace std;
const int MM=1e5+5;
int n;
int a[MM<<1];
int main()
{
    int t;
    scanf("%d",&t);
    for(int i=0;i<t;i++)
    {
        scanf("%d",&a[i]);
    }
    if(t>2){
    sort(a,a+t);
    int sum=a[t-2]-a[0];
    int minn=a[t-1]-a[1];
    cout<<min(sum,minn);
    }
    else
        cout<<"0"<<endl;
    return 0;
}
