#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int,int> pii;
typedef pair<double,double> pdd;
typedef pair<ll,ll> pll;
typedef vector<pii> vii;
typedef vector<pll> vll;
typedef double dl;
#define pb push_back
#define f first
#define s second
#define mp make_pair
#define endl '\n'
#define sp " "
#define yes cout<<"YES"<<endl;
#define no cout<<"NO"<<endl;
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
//#define sz(x) (int)x.size
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*b/gcd(a,b))
#define sqr(a) ((a) * (a))
#define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define fraction(a) cout.unset(ios::floatfield); cout.precision(a); cout.set(ios::fixed,ios::floatfield);
#define file() freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
const double pi = acos(-1);
const double eps = 1e-9;
const int inf = 2000000000;
const ll infll = 9000000000000000000;
const int mod = 1e9 + 7;
// bool cmp(const pair<int,int>&p1, const pair<int,int>&p2) { if(p1.first<p2.first) return 1;
// else if(p1.first==p2.first) return(p1.second>p2.second); return 0;}
bool isprime(int x){ if(x==1) return false;
for(int i=2;i*i<=x;i++){
if(x%i==0)
return false;
}
return true;
}
//solution of problem starts from here.......
int ispal(int num,vector<int> a){
for(int i=0,j=num-1;i<num/2;i++,j--){
if(a[i]!=a[j]) return i;
}
return num+1;
}
bool cmp(const pair<int,int> &p1 ,const pair<int,int> &p2){
if(p1.s < p2.s) return true;
return false;
}
int prime[1000009];
void SieveOfEratosthenes(int n){
memset(prime,-1,sizeof(prime));
prime[1]=1;
for(int p = 2; p <= n; p++){
if(prime[p] == -1){
for(int i = p; i <= n; i+=p){
if(prime[i] == -1)
prime[i] = p;
}
}
}
//Actually here prime refers to least Divisor of that num
}
void solve(){
// memset(prime,-1,sizeof(prime));
dl t;
cin >> t;
for(int j = 1; j <= t ; j++){
dl n, k, m, l, r;
cin >> n;
dl cgp=0,credit=0;
vector<dl> vec{40,45,50,55,60,65,70,75,80};
map<dl,double>mp;
mp[vec[0]]=2.00;
for(int i = 1; i <= 8; i++){
mp[vec[i]] = mp[vec[i-1]]+ 0.25;
}
// for(auto u : mp){
// cout << u.s << sp;
// }
// cout << endl;
int f=1,fail=0;
for(int i = 0; i < n; i++){
double a;
double b;
cin >> a >> b;
if(a < 40.00) {
f=0;
fail++;
}
credit+=b;
int up=upper_bound(all(vec),a)-vec.begin();
//cout << up << endl;
cgp+=(mp[vec[up-1]]*b);
//cout << cgp << sp;
}
//cout <<cgp <<credit << endl;
if(f==0){
cout << "Case "<< j << ": Sorry, you have failed in " << fail<<" courses!" << endl;
return;
}
cout<< "Case " << j << ": ";
cout << setprecision(2) << fixed<< cgp/credit << endl;
}
}
int main(){
optimize();
//ll t;cin>>t;
//while(t--){
solve();
//}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPGxsPiB2bDsKdHlwZWRlZiB2ZWN0b3I8dmk+IHZ2aTsKdHlwZWRlZiB2ZWN0b3I8dmw+IHZ2bDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKdHlwZWRlZiBwYWlyPGRvdWJsZSxkb3VibGU+IHBkZDsKdHlwZWRlZiBwYWlyPGxsLGxsPiBwbGw7CnR5cGVkZWYgdmVjdG9yPHBpaT4gdmlpOwp0eXBlZGVmIHZlY3RvcjxwbGw+IHZsbDsKdHlwZWRlZiBkb3VibGUgZGw7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZCAKI2RlZmluZSBtcCBtYWtlX3BhaXIgCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgc3AgIiAiCiNkZWZpbmUgeWVzIGNvdXQ8PCJZRVMiPDxlbmRsOwojZGVmaW5lIG5vIGNvdXQ8PCJOTyI8PGVuZGw7CiNkZWZpbmUgYWxsKGEpIChhKS5iZWdpbigpLChhKS5lbmQoKQojZGVmaW5lIHJhbGwoYSkgKGEpLnJiZWdpbigpLChhKS5yZW5kKCkKLy8jZGVmaW5lIHN6KHgpIChpbnQpeC5zaXplCiNkZWZpbmUgZ2NkKGEsYikgX19nY2QoYSxiKQojZGVmaW5lIGxjbShhLGIpIChhKmIvZ2NkKGEsYikpCiNkZWZpbmUgc3FyKGEpICgoYSkgKiAoYSkpCiNkZWZpbmUgb3B0aW1pemUoKSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCkKI2RlZmluZSBmcmFjdGlvbihhKSBjb3V0LnVuc2V0KGlvczo6ZmxvYXRmaWVsZCk7IGNvdXQucHJlY2lzaW9uKGEpOyBjb3V0LnNldChpb3M6OmZpeGVkLGlvczo6ZmxvYXRmaWVsZCk7CgojZGVmaW5lIGZpbGUoKSBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7ZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7Cgpjb25zdCBkb3VibGUgcGkgPSBhY29zKC0xKTsKY29uc3QgZG91YmxlIGVwcyA9IDFlLTk7CmNvbnN0IGludCBpbmYgPSAyMDAwMDAwMDAwOwpjb25zdCBsbCBpbmZsbCA9IDkwMDAwMDAwMDAwMDAwMDAwMDA7CmNvbnN0IGludCBtb2QgPSAxZTkgKyA3OwoKLy8gYm9vbCBjbXAoY29uc3QgcGFpcjxpbnQsaW50PiZwMSwgY29uc3QgcGFpcjxpbnQsaW50PiZwMikgeyAgaWYocDEuZmlyc3Q8cDIuZmlyc3QpIHJldHVybiAxOwovLyAJZWxzZSBpZihwMS5maXJzdD09cDIuZmlyc3QpICByZXR1cm4ocDEuc2Vjb25kPnAyLnNlY29uZCk7ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7fQpib29sIGlzcHJpbWUoaW50IHgpeyBpZih4PT0xKSByZXR1cm4gZmFsc2U7Cglmb3IoaW50IGk9MjtpKmk8PXg7aSsrKXsKCQlpZih4JWk9PTApIAoJCQlyZXR1cm4gZmFsc2U7Cgl9IAoJcmV0dXJuIHRydWU7Cn0KCi8vc29sdXRpb24gb2YgcHJvYmxlbSBzdGFydHMgZnJvbSBoZXJlLi4uLi4uLgoKaW50IGlzcGFsKGludCBudW0sdmVjdG9yPGludD4gYSl7Cglmb3IoaW50IGk9MCxqPW51bS0xO2k8bnVtLzI7aSsrLGotLSl7CgkJaWYoYVtpXSE9YVtqXSkgcmV0dXJuIGk7Cgl9CglyZXR1cm4gbnVtKzE7Cn0KYm9vbCBjbXAoY29uc3QgcGFpcjxpbnQsaW50PiAmcDEgLGNvbnN0IHBhaXI8aW50LGludD4gJnAyKXsKCWlmKHAxLnMgPCBwMi5zKSByZXR1cm4gdHJ1ZTsKCXJldHVybiBmYWxzZTsKfQppbnQgcHJpbWVbMTAwMDAwOV07CnZvaWQgU2lldmVPZkVyYXRvc3RoZW5lcyhpbnQgbil7CgltZW1zZXQocHJpbWUsLTEsc2l6ZW9mKHByaW1lKSk7CglwcmltZVsxXT0xOwoJZm9yKGludCBwID0gMjsgcCA8PSBuOyBwKyspewoJCWlmKHByaW1lW3BdID09IC0xKXsKCQkJZm9yKGludCBpID0gcDsgaSA8PSBuOyBpKz1wKXsKCQkJCWlmKHByaW1lW2ldID09IC0xKQoJCQkJCXByaW1lW2ldID0gcDsKCQkJfQoJCX0KCX0KCS8vQWN0dWFsbHkgaGVyZSBwcmltZSByZWZlcnMgdG8gbGVhc3QgRGl2aXNvciBvZiB0aGF0IG51bQp9CnZvaWQgc29sdmUoKXsKCS8vIG1lbXNldChwcmltZSwtMSxzaXplb2YocHJpbWUpKTsKCWRsIHQ7CgljaW4gPj4gdDsKCWZvcihpbnQgaiA9IDE7IGogPD0gdCA7IGorKyl7CgkJZGwgbiwgaywgbSwgbCwgcjsKCQljaW4gPj4gbjsKCQlkbCBjZ3A9MCxjcmVkaXQ9MDsKCQl2ZWN0b3I8ZGw+IHZlY3s0MCw0NSw1MCw1NSw2MCw2NSw3MCw3NSw4MH07CgkJbWFwPGRsLGRvdWJsZT5tcDsKCQltcFt2ZWNbMF1dPTIuMDA7CgkJZm9yKGludCBpID0gMTsgaSA8PSA4OyBpKyspewoJCQltcFt2ZWNbaV1dID0gbXBbdmVjW2ktMV1dKyAwLjI1OwoJCX0KCQkvLyBmb3IoYXV0byB1IDogbXApewoJCS8vIAljb3V0IDw8IHUucyA8PCBzcDsKCQkvLyB9CgkJLy8gY291dCA8PCBlbmRsOwoJCWludCBmPTEsZmFpbD0wOwoJCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCQlkb3VibGUgYTsKCQkJZG91YmxlIGI7CgkJCWNpbiA+PiBhID4+IGI7CgkJCWlmKGEgPCA0MC4wMCkgewoJCQkJZj0wOwoJCQkJZmFpbCsrOwoJCQl9CgkJCWNyZWRpdCs9YjsKCQkJaW50IHVwPXVwcGVyX2JvdW5kKGFsbCh2ZWMpLGEpLXZlYy5iZWdpbigpOwoJCQkvL2NvdXQgPDwgdXAgPDwgZW5kbDsKCQkJY2dwKz0obXBbdmVjW3VwLTFdXSpiKTsKCQkJLy9jb3V0IDw8IGNncCA8PCBzcDsKCQl9CgkJLy9jb3V0IDw8Y2dwIDw8Y3JlZGl0IDw8IGVuZGw7CgkJaWYoZj09MCl7CgkJCWNvdXQgPDwgIkNhc2UgIjw8IGogPDwgIjogU29ycnksIHlvdSBoYXZlIGZhaWxlZCBpbiAiIDw8IGZhaWw8PCIgY291cnNlcyEiIDw8IGVuZGw7CgkJCXJldHVybjsKCQl9CgkJY291dDw8ICJDYXNlICIgPDwgaiA8PCAiOiAiOwoJCWNvdXQgPDwgc2V0cHJlY2lzaW9uKDIpIDw8IGZpeGVkPDwgY2dwL2NyZWRpdCA8PCBlbmRsOwoJfQp9CmludCBtYWluKCl7CglvcHRpbWl6ZSgpOwoJLy9sbCB0O2Npbj4+dDsKCS8vd2hpbGUodC0tKXsKCQlzb2x2ZSgpOwoJLy99CglyZXR1cm4gMDsgCn0KCgoKCgoKCgoKCgoK