#include <iostream>
#include <vector>
using namespace std;
double poirev(double a)
{
    if(a>=90&&a<=100)
    return 4;
    if(a>=85&&a<=89)
    return 3.7;
    if(a>=82&&a<=84)
    return 3.3;
    if(a>=78&&a<=81)
    return 3.0;
    if(a>=75&&a<=77)
    return 2.7;
     if(a>=72&&a<=74)
    return 2.3;
     if(a>=68&&a<=71)
    return 2.0;
     if(a>=64&&a<=67)
    return 1.5;
     if(a>=60&&a<=63)
    return 1.0;
    if(a<60)
    return 0;
    return 0;
}


int main() {
    int n;
    while(cin>>n)
    {   int sumcre=0;
        double gpa=0;
        vector<int> cre;
        vector<double> jd;
        for(int i=0;i<n;i++)
        {  int temp;
            cin>>temp;
            sumcre+=temp;
            cre.push_back(temp);
        }
        for(int i=0;i<n;i++)
        {
           int temp;
           cin>>temp;
           jd.push_back(poirev(temp));
        }
        for(int i=0;i<n;i++)
        {
            gpa+=cre[i]*jd[i];
        }
        printf("%.2f\n",gpa/sumcre);
    }
    
}
// 64 位输出请用 printf("%lld")

我服了,这么简单的代码疯狂WA到怀疑自己,最后发现小于60分的情况是返回0 1是后面的要求的标号,不是返回0.1