成绩统计
小蓝给学生们组织了一场考试,卷面总分为100 分,每个学生的得分都是一个0 到100 的整数。
如果得分至少是60 分,则称为及格。如果得分至少为85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数。
输入格式
输入的第一行包含一个整数n,表示考试人数。
接下来n 行,每行包含一个0 至100 的整数,表示一个学生的得分。
输出格式
输出两行,每行一个百分数,分别表示及格率和优秀率。
百分号前的部分四舍五入保留整数。
输入样例
7 80 92 56 74 88 100 0
输出样例
71% 43% #include <iostream> #include <bits/stdc++.h> #include <algorithm>
#include <vector> #include <cmath> #include <queue> #include <bitset> using
namespace std; typedef long long ll; int main() { int n, jige = 0, youxiu = 0;
cin >> n; int m = n; while(n --) { int a; cin >> a; if(a >= 60) jige ++; if(a
>= 85) youxiu ++; } double sum1 = jige * 1.00 / m * 100; double sum2 = youxiu *
1.00 / m * 100; printf("%.0lf%\n%.0lf%\n",sum1, sum2); return 0; }
子串分值和
对于一个字符串S ,我们定义S 的分值f (S ) 为S 中出现的不同的字符个数。
例如f (”aba”) = 2, f (”abc”) = 3, f (”aaa”) = 1。
现在给定一个字符串S [0 : n - 1](长度为n),请你计算对于所有S 的非空子串S [i : j](0 ≤ i ≤ j < n), f (S
[i:: j]) 的和是多少。
输入格式
输入一行包含一个由小写字母组成的字符串S 。
对于所有评测用例,1 ≤ n ≤ 100000。
输出格式
输出一个整数表示答案。
输入样例
ababc
输出样例
28 #include <iostream> #include<cstring> using namespace std; typedef long
long ll; int main() { string s; cin >> s; ll total = 0; int a[26];
memset(a,-1,sizeof(a)); a[s[0] - 'a'] = 0; total += s.size(); for(int
i=1;i<s.size();i++) { total += (i - a[s[i] - 'a']) * (s.size() - i); a[s[i] -
'a'] = i; } cout << total; return 0; }