Codeforces Round #277.5 (Div. 2)

Source: Internet
Author: User

Codeforces Round #277.5 (Div. 2)
A. SwapSorttime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

In this problem your goal is to sort an array consistingNIntegers in at mostNSwaps. For the given array find the sequence of swaps that makes the array sorted in the non-descending order. Swaps are saved med consecutively, one after another.

Note that in this problem you do not have to minimize the number of swaps-your task is to find any sequence that is no longerN.

Input

The first line of the input contains integerN(1? ≤?N? ≤? 3000)-the number of array elements. The second line contains elements of array:A0 ,?A1 ,?...,?AN? -? 1 (? -? 109? ≤?AI? ≤? 109), whereAIIsI-Th element of the array. The elements are numerated from 0N? -? 1 from left to right. Some integers may appear in the array more than once.

Output

In the first line printK(0? ≤?K? ≤?N)-The number of swaps. NextKLines must contain the descriptions ofKSwaps, one per line. Each swap shocould be printed as a pair of integersI,J(0? ≤?I,?J? ≤?N? -? 1), representing the swap of elementsAIAndAJ. You can print indices in the pairs in any order. The swaps are saved med in the order they appear in the output, from the first to the last. It is allowed to printI? =?JAnd swap the same pair of elements multiple times.

If there are multiple answers, print any of them. It is guaranteed that at least one answer exists.

Sample test (s) input
55 2 5 1 4
Output
20 34 2
Input
610 20 20 40 60 60
Output
0
Input
2101 100
Output
1

0 1

#include 
  
   #include 
   
    #include 
    
     #include using namespace std;int a[3010];int b[120];int vis[120];typedef pair
     
       P;P m[3010];int main(){   #ifdef xxz    freopen("in.txt","r",stdin);    #endif // [xxz    int n;    cin>>n;    for(int i = 0; i < n; i++)        cin>>a[i];    int sum = 0,ans = 0;    int i,j;    for(i = 0; i < n; i++)    {        int x = a[i];        int y = i;        for( j = i+1; j < n; j++)        {           if(x > a[j])           {                x = a[j];                y = j;           }        }        if(y != i)        {            m[sum].first = i;            m[sum++].second = y;            swap(a[i],a[y]);            ans++;        }    }    cout<
      

B. BerSU Balltime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

The Berland State University is hosting a ballroom dance in celebration of its 100500-th anniversary! n boys and m girls are already busy rehearsing waltz, minuet, polonaise and quadrille moves.

We know that several boy&girl pairs are going to be invited to the ball. However, the partners' dancing skill in each pair must differ by at most one.

For each boy, we know his dancing skills. Similarly, for each girl we know her dancing skills. Write a code that can determine the largest possible number of pairs that can be formed from n boys and m girls.

Input

The first line contains an integer n (1?≤?n?≤?100) — the number of boys. The second line contains sequence a1,?a2,?...,?an (1?≤?ai?≤?100), where ai is the i-th boy's dancing skill.

Similarly, the third line contains an integer m (1?≤?m?≤?100) — the number of girls. The fourth line contains sequence b1,?b2,?...,?bm (1?≤?bj?≤?100), where bj is the j-th girl's dancing skill.

Output

Print a single number — the required maximum possible number of pairs.

Sample test(s)input
41 4 6 255 1 5 7 9
output
3
input
41 2 3 4410 11 12 13
output
0
input
51 1 1 1 131 2 3
output
2

#include 
       
        #include 
        
         #include 
         
          #include using namespace std;int a[120];int b[120];int vis[120];int main(){   #ifdef xxz    freopen("in.txt","r",stdin);    #endif // [xxz    int n,m;    cin>>n;    for(int i = 0; i < n; i++) cin>>a[i];    sort(a,a+n);    cin>>m;    for(int i = 0; i < m; i++) cin>>b[i],vis[i] = 0;    sort(b,b+m);    int sum = 0;    int j;    for(int i =0; i < n; i++)    {        for( int j = 0; j < m; j++)        {            if(vis[j] == 0 && abs(a[i] - b[j]) <= 1 )            {                sum++;                vis[j] = 1;                break;            }        }    }    cout<
          
           
C. Given Length and Sum of Digits...time limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

You have a positive integer m and a non-negative integer s. Your task is to find the smallest and the largest of the numbers that have length m and sum of digits s. The required numbers should be non-negative integers written in the decimal base without leading zeroes.

Input

The single line of the input contains a pair of integers m, s (1?≤?m?≤?100,?0?≤?s?≤?900) — the length and the sum of the digits of the required numbers.

Output

In the output print the pair of the required non-negative integer numbers — first the minimum possible number, then — the maximum possible number. If no numbers satisfying conditions required exist, print the pair of numbers "-1 -1" (without the quotes).

Sample test(s)input
2 15
output
69 96
input
3 0
output
-1 -1
#include 
            
             #include #include 
             
              using namespace std;bool can(int m, int s){    if(s >= 0 && 9*m >= s) return true;    else return false;}int main(){    int m,s;    cin>>m>>s;    if(!can(m,s))    {        cout<<"-1"<<" "<<"-1"<
              
               = 10)        {            cout<<"-1"<<" "<<"-1"<
               
                 0 || (j == 0 && i > 1) ) && can(m - i, sum - j))                   {                       minn += char('0' + j);                       sum -= j;                       break;                   }            }            sum = s;               for(int i = 1; i <= m; i++)                for(int j = 9; j >= 0; j--)            {                if(can(m - i, sum - j))                   {                       maxn += char('0' + j);                       sum -= j;                       break;                   }            }            cout<
                
                 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.