求查刚刚结束的入门赛H,样例全对,但一分不得
  • 板块学术版
  • 楼主mc_xiexie
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/10/18 21:01
  • 上次更新2024/10/18 23:02:04
查看原帖
求查刚刚结束的入门赛H,样例全对,但一分不得
1095322
mc_xiexie楼主2024/10/18 21:01
#include<bits/stdc++.h>
using namespace std;
int p[400005];
struct node{
    int id,sc,numbers;
}a[4005][10005];
bool cmp1(node a,node b){
    return a.id<b.id;
}
bool cmp2(node a,node b){
    return a.sc<b.sc;
}
int main(){
    int n,sum=0,classn=0;
    cin>>n;
    for(int j=1;j<=n;j++){
        cin>>p[j];
        for(int i=1;i<=p[j];i++){
            cin>>a[j][i].id;
        }
        if(p[j]!=1){
        	sort(a[j]+1,a[j]+p[j],cmp1);
		}
        for(int i=1;i<=p[j];i++){
            cin>>a[j][i].sc;
        }
        if(p[j]!=1){
        	sort(a[j]+1,a[j]+p[j],cmp1);
		}
        for(int i=1;i<=p[j];i++){
            cin>>a[j][i].numbers;
        }
    }
    int num;
    cin>>num;
    for(int q=1;q<=n;q++){
        for(int i=1;i<=p[q];i++){
            if(a[q][i].id==num){
            	sum+=a[q][i].numbers;
            	classn++;
            	break;
			}
        }
    }
    if(sum%classn==0){
    	cout<<floor(sum/classn);
	}
	else{
		int ans=floor(sum/classn);
		int mod=sum%classn;
		cout<<ans<<"+";
		while(1){
			bool b=1;
			for(int i=2;i<=mod;i++){
				if(mod%i==0 && classn%i==0){
					mod/=i;
					classn/=i;
					b=0;
				}
			}
			if(b){
				break;
			}
		}
		cout<<mod<<"/"<<classn;
	}
	return 0; 
}
2024/10/18 21:01
加载中...