Code forces 103A---Testing Pants for Sadness

简介: 点击打开链接 A. Testing Pants for Sadness time limit per test 2 seconds memory limit per test 256 megabytes ...

点击打开链接


A. Testing Pants for Sadness
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

The average miner Vaganych took refresher courses. As soon as a miner completes the courses, he should take exams. The hardest one is a computer test called "Testing Pants for Sadness".

The test consists of n questions; the questions are to be answered strictly in the order in which they are given, from question 1 to question n. Question i contains ai answer variants, exactly one of them is correct.

A click is regarded as selecting any answer in any question. The goal is to select the correct answer for each of the n questions. If Vaganych selects a wrong answer for some question, then all selected answers become unselected and the test starts from the very beginning, from question 1 again. But Vaganych remembers everything. The order of answers for each question and the order of questions remain unchanged, as well as the question and answers themselves.

Vaganych is very smart and his memory is superb, yet he is unbelievably unlucky and knows nothing whatsoever about the test's theme. How many clicks will he have to perform in the worst case?

Input

The first line contains a positive integer n (1 ≤ n ≤ 100). It is the number of questions in the test. The second line contains space-separated n positive integers ai (1 ≤ ai ≤ 109), the number of answer variants to question i.

Output

Print a single number — the minimal number of clicks needed to pass the test it the worst-case scenario.

Please do not use the %lld specificator to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specificator.

Sample test(s)
input
2
1 1
output
2
input
2
2 2
output
5
input
1
10
output
10
Note

Note to the second sample. In the worst-case scenario you will need five clicks:

  • the first click selects the first variant to the first question, this answer turns out to be wrong.
  • the second click selects the second variant to the first question, it proves correct and we move on to the second question;
  • the third click selects the first variant to the second question, it is wrong and we go back to question 1;
  • the fourth click selects the second variant to the first question, it proves as correct as it was and we move on to the second question;
  • the fifth click selects the second variant to the second question, it proves correct, the test is finished



题目意思:    有一个人在做题目,现在有n道题,每道题会有Ai个选择,现在题目说这个人记忆很好可以记住自己前面选择的,但是只要这个选错,那么所有的问题都要从新选择,问这个人最多要选择几次


解题思路:    我们知道如果要让选择的次数最多,那么就是这个人最后一次才选上答案,那么我们只要知道这个原来,就可以推出一个规律,然后我们去for一遍即可(注意用__int64)


代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <cstdio>
#include <stack>
#include <queue>
#include <cmath>
using namespace std;

int n;
__int64 sum;
__int64 ans[110];

//
void solve(){
    sum = 0;
    int tmp;
    for(int i = 1; i <= n ; i++){ 
        tmp = 0;
        for(int j = 1 ; j < i ; j++) tmp++;
        sum += tmp*(ans[i]-1) + ans[i];//推出的公式
    }
    printf("%I64d\n" , sum);
}

//主函数
int main(){
    //freopen("input.txt" , "r" , stdin);
    while(scanf("%d" , &n) != EOF){
        memset(ans , 0 , sizeof(ans));
        for(int i = 1 ; i <= n ; i++)      
            cin>>ans[i];
        solve();
    }
    return 0;
}



目录
相关文章
|
3月前
|
开发工具 git
GitHub——Error: Process completed with exit code 126.
GitHub——Error: Process completed with exit code 126.
61 1
GitHub——Error: Process completed with exit code 126.
|
Ubuntu Unix Linux
成功解决ERROR: Unable to find the development tool `cc` in your path; please make sure that you have the
成功解决ERROR: Unable to find the development tool `cc` in your path; please make sure that you have the
成功解决ERROR: Unable to find the development tool `cc` in your path; please make sure that you have the
|
6月前
|
Java
failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code
failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code
113 0
|
6月前
|
缓存 IDE Linux
Internal error. Please report to https://jb.gg/ide/critical-startup-errors
Internal error. Please report to https://jb.gg/ide/critical-startup-errors
136 0
|
Android开发
Failed to obtain GLES 2.x extensions striProcess finished with exit code -1073741819 (0xC0000005)
android studio打开虚拟机时报错信息,解决办法之一(我成功的办法,其他方法试了没用), 打开 设备管理器然后找到你的独显,然后禁用设备,然后再次启动设备就行了,最后再启动你的虚拟机就行了。
172 0
Execution failed for task :Test:lintVitalRelease/Lint found fatal errors while assembling a release
Execution failed for task :Test:lintVitalRelease/Lint found fatal errors while assembling a release
121 0
|
自然语言处理 Python
A reportable application error has occurred. Conda has prepared the above report......
A reportable application error has occurred. Conda has prepared the above report......
240 0
A reportable application error has occurred. Conda has prepared the above report......
|
Python
Command "python setup.py egg_info" failed with error code 1
Command "python setup.py egg_info" failed with error code 1
153 0
Command "python setup.py egg_info" failed with error code 1
|
Shell Windows
ERROR: Command `Install ‘code‘ command in PATH` exited with status code 1.
ERROR: Command `Install ‘code‘ command in PATH` exited with status code 1.
166 0
ERROR: Command `Install ‘code‘ command in PATH` exited with status code 1.