zoukankan      html  css  js  c++  java
  • Code Forces 645B Mischievous Mess Makers

    It is a balmy spring afternoon, and Farmer John’s n cows are ruminating about link-cut cacti in their stalls. The cows, labeled 1 through n, are arranged so that the i-th cow occupies the i-th stall from the left. However, Elsie, after realizing that she will forever live in the shadows beyond Bessie’s limelight, has formed the Mischievous Mess Makers and is plotting to disrupt this beautiful pastoral rhythm. While Farmer John takes his k minute long nap, Elsie and the Mess Makers plan to repeatedly choose two distinct stalls and swap the cows occupying those stalls, making no more than one swap each minute.

    Being the meticulous pranksters that they are, the Mischievous Mess Makers would like to know the maximum messiness attainable in the k minutes that they have. We denote as pi the label of the cow in the i-th stall. The messiness of an arrangement of cows is defined as the number of pairs (i, j) such that i < j and pi > pj.

    Input
    The first line of the input contains two integers n and k (1 ≤ n, k ≤ 100 000) — the number of cows and the length`of Farmer John’s nap, respectively.

    Output
    Output a single integer, the maximum messiness that the Mischievous Mess Makers can achieve by performing no more than k swaps.

    Sample Input
    Input
    5 2
    Output
    10
    Input
    1 10
    Output
    0

    #include <iostream>
    #include <string.h>
    #include <stdlib.h>
    #include <algorithm>
    #include <math.h>
    #include <stdio.h>
    #include <queue>
    #include <map>
    
    using namespace std;
    long long int n,k;
    long long int ans;
    int main()
    {
        scanf("%lld%lld",&n,&k);
        long long int sum=(n*(n-1))/2;
        int l=n;
        ans=0;
        if(n==1)
        {
             printf("0
    ");
             return 0;
        }
        for(int i=1;i<=k;i++)
        {
            ans+=(l-1+l-2);
            l-=2;
            if(ans==sum)
                break;
        }
        printf("%lld
    ",ans);
        return 0;
    }
  • 相关阅读:
    FORM触发器执行顺序
    Invoke和BeginInvoke理解
    理解AppDomain
    BackgroundWorker学习笔记
    NLog类库使用探索——编程配置
    NLog类库使用探索——详解配置
    NLog类库的使用探索——认识配置+实习小感悟
    深入探讨WPF的ListView控件
    深入理解IOC模式及Unity框架
    网络通信之 字节序转换原理与网络字节序、大端和小端模式
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228703.html
Copyright © 2011-2022 走看看