Go: package main

import (
        "fmt"
        "bufio"
        "os"
        "math"
)

func main() {
        var a, b, c, d, e, f float64
        sc := bufio.NewScanner(os.Stdin)
        for sc.Scan() {
                fmt.Sscanf(sc.Text(), "%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)

                det := a*e - b*d
                x := (e*c - b*f) / det
                y := (a*f - c*d) / det
                if x == 0.0 {
                        x = math.Abs(x)
                }
                if y == 0.0 {
                        y = math.Abs(y)
                }
                fmt.Printf("%.3f %.3f\n", x, y)
        }
}

C++: #define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

#include <bits/stdc++.h>
using namespace std;

int main(){
  double a,b,c,d,e,f,x,y;
  
  while(cin>>a>>b>>c>>d>>e>>f){
    if(b==0){
      x=c/a;
      y=(f-d*x)/e;
    }
    else{
      x=(c*e-b*f)/(a*e-b*d);
      y=(c-a*x)/b;
    }
    
    x=round(x*1000)/1000;
    y=round(y*1000)/1000;
    
    if(x==-0.000) x=0.000;
    if(y==-0.000) y=0.000;
    
    cout<< fixed << setprecision(3) << x <<" "<< y << endl;
  }
    
  return 0;
}