Description

Vika has n jars with paints of distinct colors. All the jars are numbered from 1 to n and the i-th jar contains ai liters of paint of color i.

Vika also has an infinitely long rectangular piece of paper of width 1, consisting of squares of size 1 × 1. Squares are numbered 1, 2,3 and so on. Vika decided that she will start painting squares one by one from left to right, starting from the square number 1 and some arbitrary color. If the square was painted in color x, then the next square will be painted in color x + 1. In case of x = n, next square is painted in color 1. If there is no more paint of the color Vika wants to use now, then she stops.

Square is always painted in only one color, and it takes exactly 1 liter of paint. Your task is to calculate the maximum number of squares that might be painted, if Vika chooses right color to paint the first square.

Input

The first line of the input contains a single integer n (1 ≤ n ≤ 200 000) — the number of jars with colors Vika has.

The second line of the input contains a sequence of integers a1, a2, ..., an (1 ≤ ai ≤ 109), where ai is equal to the number of liters of paint in the i-th jar, i.e. the number of liters of color i that Vika has.

Output

The only line of the output should contain a single integer — the maximum number of squares that Vika can paint if she follows the rules described above.

Sample Input

Input
52 4 2 3 3
Output
12
Input
35 5 5
Output
15
Input
610 10 10 1 10 10
Output
11

要涂油漆,有T(需要输入)种油漆,每种编号1,2,3,4....,没涂完一次,下一种油漆序号要比第一种大,如果到最大,那下一种就是1,输入各种油漆的数量,问你最多能涂多少油漆

 #include <stdio.h>
 #include <iostream>
 using namespace std;
 #define Maxn 210000
 #define INF 1500000000

 struct Node
 {
     long long int num;
 }N[Maxn];

 int main()
 {
     long long int T;
     scanf("%lld",&T);
     long long int min = INF;
     long long int flag_big;
     long long int flag_small;
     long long int flag;
     long long int bigger;
     bool Q = false;
     ; i <= T; i++)
     {
         scanf("%lld",&N[i].num);
         if (min > N[i].num)
         {
             min = N[i].num;
             flag = i;
         }
     }
     )
     {
         printf(].num);//我在这里错了十发- -
         ;
     }
     flag_small = flag;
     ; i <= T; i++)
     {
         if (min == N[i].num && flag < i)
         {
             flag = i;
             Q = true;
         }
     }
     flag_big = flag;
     long long int biggest;
     bigger = T - flag_big + flag_small -;
     ;
     ;
     if (Q)
     {
         for(int i = flag_small; i <= T; i++)
         {
             if (N[i].num == min)
             {
                 count = i - flag_small-;
                 flag_small = i;
             }
             if (count > cnt)
             {
                 cnt = count;
             }
         }
         biggest = max(cnt,bigger);
         //long long Fuck;
         //Fuck = T*min;
         printf("%lld\n",T*min + biggest);
     }
     else
     {
         printf();
     }
 }

codeforces 610B的更多相关文章

  1. CodeForces 610B Vika and Squares

    #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...

  2. Codeforces Round #337 (Div. 2) 610B Vika and Squares(脑洞)

    B. Vika and Squares time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  3. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  4. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  5. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  6. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  7. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  8. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  9. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

随机推荐

  1. oracle 的 startup,startup mount,startup nomount之间的区别

    startup,startup mount,startup nomount之间的区别   startup nomount选项:(读初始化参数文件,启动实例) startup nomount选项启动实例 ...

  2. OpenSSL安装及目录介绍

    1. 下载安装OpenSSL 2. 根据需要下载安装Visual C++ Redistributable 3. 安装完成OpenSSL后,目录结构如下所示 其中,bin文件夹下是OpenSSL主程序的 ...

  3. 【转】iOS-Core-Animation-Advanced-Techniques(四)

    原文:http://www.cocoachina.com/ios/20150105/10812.html 隐式动画和显式动画 隐式动画 按照我的意思去做,而不是我说的. -- 埃德娜,辛普森 我们在第 ...

  4. innerHTML/outerHTML; innerText/outerText; textContent

    innerHTML v.s. outerHTML Element.innerHTML Reference: https://developer.mozilla.org/en-US/docs/Web/A ...

  5. 【C#枚举】根据EnumName获取Value

    public static int GetEnumValue(Type enumType, string enumName) { try { if (!enumType.IsEnum) throw n ...

  6. 颤抖吧,Css3

    相关文章地址:http://sc.chinaz.com/info/140315283609.htm http://files.cnblogs.com/xinlinux/csshake.min.css ...

  7. 【技术宅6】把一个无限级分类循环成tree结构

    function list_to_tree($list,$root=0,$pk='cid',$pid = 'pid',$child = '_child'){ if(is_array($list)) { ...

  8. DataTable举例

    // clrTest1.cpp: 主项目文件. #include "stdafx.h" using namespace System; using namespace System ...

  9. 【译】iOS人性化界面指南(iOS Human Interface Guidelines)(一)

    1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来 ...

  10. WPF感悟(1)

    原文地址:http://liutiemeng.blog.51cto.com/120361/91632 1.UI层与逻辑层要尽可能地剥离(解耦). 2.Routed Event和Command比Even ...