Accounting | Trading | Tools | Accounts | Login
Kurniady Systems - Tools
 
Tuesday, 07 September 2010 - 17:08:39
Home | About

Viewing Text Document

Title:

INC 2008 Qual B

Owner: Andrian Kurniady

Last updated on: Tuesday, 15 July 2008

Description:

My solution for INC 2008 qualification problem B.

Content:

#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;

char buffer[10000];

int main(){
    int ntc;
    scanf("%d", &ntc);
    while (ntc--){
        int n;
        scanf("%d%s", &n,buffer);
    
        vector<double> data;
        double avg=0;
        for (int i=0;i<n;i++){
            double x;
            scanf("%lf", &x);
            data.push_back(x);
            avg+=x;
        }
        avg/=n;
                
        printf("%s\n", buffer);
        if (n==1){
            puts("500.00");
        } else {
            double variance = 0;
            for (int i=0;i<n;i++){
                double del = data[i]-avg;
                variance += del*del;
            }
            variance /= (n-1);
            double sd = sqrt(variance);
            
            if (sd<1E-9){
                for (int i=0;i<n;i++){
                    puts("500.00");
                }
            } else 
            
            for (int i=0;i<n;i++){
                double pos = (data[i]-avg)/sd;                    
                double res = (pos*100.0/3.0)+500;
                res>?=400;
                res<?=600;
                printf("%.2lf\n", res);                
            }
        }
    }
    
    return 0;
}

Please note that the document shown may be copyrighted. Please contact the owner of this document for the details.
Valid XHTML and CSS. Powered by Ruby on Rails.
 
Copyright © 2008 by Andrian Kurniady. All rights reserved.