胡睿康
(莙_)
1
年级主任曾经说过:“要让所有班的成绩都高于平均分!!”.
所以他想把班级平均分低于年级平均分的班级都拉出来狠狠地处理一下. 现在告诉你每个班中每个同学的成绩. 要求输出班级平均分低于年级平均分的所有班级编号(在输入中的顺序).
定义一个班级的平均分为其所有同学的分数之和除以同学个数并下取整. 定义一个年级的平均分为所有班级的平均分之和除以班级数量并下取整.
输入格式
第一行一个正整数 n, 表示班级数量. 接下来描述 n 个班级. 每个班级的第一行一个正整数 m 表示该班级同学数量. 接下来一行 m 个整数表示同学的分数.
输出格式
一行若干个正整数,依次输出班级平均分低于年级平均分的班级的编号,以空格隔开
样例输入
3 3 2 3 3 3 6 6 6 3 0 4 5
样例输出
1
数据范围
对于 100% 的数据,满足 n≤100000,m≤30,每个同学的分数小于等于1000.
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m,a,cl[100001],cnt1,cnt2=0;
cin>>n;
for(int i=0;i<n;++i){
cnt1=0;
cin>>m;
for(int j=1;j<=m;++j){
cin>>a;
cnt1+=a;
}
cl[i]=floor(cnt1/m);
}
for(int i=0;i<n;++i){
cnt2+=cl[i];
}
cnt2=floor(cnt2/n);
for(int i=0;i<n;++i){
if(cl[i]<cnt2) cout<<i+1<<" ";
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,m,a,cl[100001],cnt1,cnt2=0;
cin>>n;
for(int i=0; i<n; ++i) {
cnt1=0;
cin>>m;
for(int j=1; j<=m; ++j) {
cin>>a;
cnt1+=a;
}
cl[i]=floor(cnt1/m);
}
for(int i=0; i<n; ++i) {
cnt2+=cl[i];
}
cnt2=floor(cnt2/n);
for(int i=0; i<n; ++i) {
if(cl[i]<cnt2) cout<<i+1<<" ";
}
return 0;
}
这样看起来就好了
1 个赞
#include<bits/stdc++.h>
using namespace std;
struct c{
int t;
int s[50];
int p=0;
}cl[1000010];
int main()
{
int n;
cin>>n;
int mp=0;
for(int i=0;i<n;i++){
scanf(“%d”,&cl[i].t);
for(int j=0;j<cl[i].t;j++){
scanf(“%d”,&cl[i].s[j]);
cl[i].p+=cl[i].s[j];
}
}
for(int i=0;i<n;i++){
cl[i].p/=cl[i].t;
}
for(int i=0;i<n;i++){
mp+=cl[i].p;
}
mp/=n;
for(int i=0;i<n;i++){
if(cl[i].p<mp){
printf("%d ",i+1);
}
}
return 0;
}
3
3 2 3 3
3 6 6 6
3 0 4 5
这样就好了
#include<bits/stdc++.h>
using namespace std;
struct c {
int t;
int s[50];
int p=0;
} cl[1000010];
int main() {
int n;
cin>>n;
int mp=0;
for(int i=0; i<n; i++) {
scanf(“%d”,&cl[i].t);
for(int j=0; j<cl[i].t; j++) {
scanf(“%d”,&cl[i].s[j]);
cl[i].p+=cl[i].s[j];
}
}
for(int i=0; i<n; i++) {
cl[i].p/=cl[i].t;
}
for(int i=0; i<n; i++) {
mp+=cl[i].p;
}
mp/=n;
for(int i=0; i<n; i++) {
if(cl[i].p<mp) {
printf("%d ",i+1);
}
}
return 0;
}
给你