小博沉迷收集卡片,购买干脆面是他收集卡片的主要方式。他总共渴望的有 N 类卡片,均可通过购买干脆面获得,一包干脆面中有且仅有一张卡片,并且卡片类型对应N类卡片中的一种。且每 种类型的卡片出现在一包干脆面中的概率是相等的。
小博非常的贪心,他有 N 个愿望,第i个愿望即为:拥有至少 pi 张i类卡片,其中 1 ≤ i ≤ N。
然而,小博又极其贫困,他想知道最少需要买多少干脆面,使得在最坏情况下,至少能够满足他 N 个愿望的其中一个。
数据范围:
,
小博非常的贪心,他有 N 个愿望,第i个愿望即为:拥有至少 pi 张i类卡片,其中 1 ≤ i ≤ N。
第一行包含一个整数 N 。
接下来的N行,每行一个整数pi,pi表示小博希望至少拥有的i类卡片数量。。
输出一个整数ANS,小博可以完成至少一个愿望需要购买的最少的干脆面的数量。
3 8 6 9
21
2 3 5
7
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long sum = 0;
for(int i = 0; i < n; i++) sum += sc.nextInt();
// 最坏情况:买了sum-n包仍然每种都还差一个,那么再买一包一定有一种卡片能够集齐
System.out.println(sum - n + 1);
}
} import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author wylu
*/
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
long sum = 0;
for (int i = 0; i < n; i++) sum += Integer.parseInt(br.readLine());
System.out.println(sum - (n - 1));
}
}
#include<iostream>
#include<vector>
using namespace std;
int main(){
long n;
while(cin>>n){
vector<int>data(n);
long sum=0;
for(int i=0;i<n;i++){
cin>>data[i];
sum+=data[i];
}
cout<<sum-n+1<<endl;
}
return 0;
}
//注意用long 用int只AC 90%
#include <iostream>
using namespace std;
int main(void)
{
int N;
cin >> N;
long long sum = 0;
for (int i = 0; i < N; i++)
{
int temp;
cin >> temp;
sum += temp;
}
cout << sum - N + 1 << endl;
return 0;
}